Android - Как включить Bluetooth, чтобы он всегда был включен?
Вопрос
Два вопроса о разработке Bluetooth для Android:
<Ол>Есть ли способ включить Bluetooth в Android (у меня может быть длительная фаза обнаружения устройства в моем приложении) в Android? Насколько я вижу, значением по умолчанию является обратный отсчет от 120 с. Р>
Существуют ли какие-либо реализации API-интерфейса с открытым исходным кодом?
Другие советы
Включение 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);
}
BlueCove - это реализация Bluetooth с открытым исходным кодом для Java. Р>
Он работает на многих разных машинах, и, если он верен, где-то где-то есть Android-совместимая версия.