2014-01-23 5 views
0

Как и тема. Мы - несколько разработчиков, пытающихся внедрить трансляцию с использованием Bluetooth Low Energy, но мы ничего не можем найти.Возможно ли реализовать трансляцию с BLE?

Мы знаем, что можно зарегистрировать приемник с использованием startDiscovery(), но, похоже, он не работает с BLE.

Это что-то, что мы пропустили или есть какие-либо обходные пути для решения этой проблемы? Мы хотим сделать тост в скрытом приложении, как только есть устройства, доступные для подключения.

Мы не хотим использовать startLeScan с обратным вызовом, но хотим использовать системные трансляции в Discovery.

Кроме того, сервис не является вариантом, так как мы создаем API, и мы хотим, чтобы это было легко реализовать наш код.

Это то, что мы пытались:

BroadcastReceiver br = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     android.util.Log.i("Yeah", intent.toURI()); 
    } 
}; 

getApplicationContext().registerReceiver(br, 
new IntentFilter(BluetoothDevice.ACTION_FOUND)); 

mBluetoothAdapter.startDiscovery(); 
+0

Пожалуйста, посмотрите http://developer.android.com/guide/topics/connectivity/bluetooth-le.html –

+0

Я был там, есть ли что-то, что, по-вашему, я мог пропустить? – user2486126

ответ

0

android.bluetooth.BluetoothAdapter.StartDiscovery() для обнаружения устройств (не низкой энергии) Bluetooth.

android.bluetooth.BluetoothAdapter.startLeScan() предназначен для обнаружения устройств с низкой энергией Bluetooth (BLE).

Если вы хотите получать события обнаружения Bluetooth-устройств от BroadcastReceiver, вам придется использовать Context.sendBroadcast в рамках метода android.bluetooth.BluetoothAdapter.LeScanCallback. Реализация LeScanCallback в настоящее время является единственным способом получения событий обнаружения устройств BLE в API Java Android.

Смежные вопросы