Android - Как включить Bluetooth, чтобы он всегда был включен?

StackOverflow https://stackoverflow.com/questions/1421326

  •  07-07-2019
  •  | 
  •  

Вопрос

Два вопроса о разработке Bluetooth для Android:

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

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

  • Это было полезно?

    Решение

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

    Другие советы

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

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

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

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

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

    Intent di = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    di.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
    

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

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

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

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

     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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top