Android - Как включить Bluetooth, чтобы он всегда был включен? - PullRequest
12 голосов
/ 14 сентября 2009

Два вопроса по разработке Bluetooth на Android:

  1. Есть ли способ включить Bluetooth всегда (в моем приложении может быть длительная фаза обнаружения устройства) в Android? Насколько я вижу, значением по умолчанию является обратный отсчет от 120 с.

  2. Существуют ли какие-либо реализации API-интерфейса Bluetooth с открытым исходным кодом?

Ответы [ 6 ]

9 голосов
/ 28 октября 2009

Реализация Bluetooth теперь доступна в API Android 2.0. См. это и это .

2 голосов
/ 03 апреля 2012

На 2.3.6 я могу держать устройство всегда видимым, поставив задержку 0:

Intent di = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
di.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
2 голосов
/ 14 сентября 2009

Включение Bluetooth всегда может быть неправильным решением, если ваша единственная проблема - длительная задержка обнаружения (в режиме «автономной работы»).

Что касается сторонних API-интерфейсов Bluetooth, единственное, о чем я слышал, это iAnywhere Blue SDK (от Sybase, не бесплатная, доступна только ознакомительная версия), которая охватывает некоторые функции, которые будут поддерживаться в будущем из пакетов system / bluetooth и bluez .

Согласно плану Android для Android , большинство из долгожданных вещей, таких как Java API, Bluetooth 2.1 + EDR, будут реализованы в будущем.

Удачи в вашем проекте.

1 голос
/ 29 декабря 2011
 private void ensureDiscoverable() {
    if(D) Log.d(TAG, "ensure discoverable");
    if (mBluetoothAdapter.getScanMode() !=
        BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
        Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
        discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
        startActivity(discoverableIntent);
    }

http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#ACTION_REQUEST_DISCOVERABLE

1 голос
/ 15 сентября 2009

Стек Bluez в Linux является реализацией с открытым исходным кодом. Он также доступен в Windows, но API в Linux гораздо более полон.

Когда вы говорите: «Включить Bluetooth всегда включен», вы имеете в виду, всегда пытаетесь обнаружить другие устройства?

Большинство чипов Bluetooth имеют режим глубокого сна, когда чип в основном не работает и просто проверяет активность на любых установленных каналах. Он будет работать только на полную мощность, когда вы захотите, чтобы он что-то сделал (обнаружение, установление соединения) или активность на существующей ссылке.

Да, он потребляет больше энергии аккумулятора, чем если бы Bluetooth был полностью отключен, но это не полный вампир.

0 голосов
/ 17 сентября 2009

BlueCove - это реализация Bluetooth с открытым исходным кодом для Java.

Он работает на многих разных машинах, и, если он верен, где-то где-то скрывается совместимая с Android версия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...