Привет это может звучать как глупый вопрос. Но я не мог найти любые ответы для этого, таким образом отправляя здесь.
Я создаю внутреннее приложение, которое непрерывно сканирует аппаратные ключи Bluetooth, расположенные в различных местоположениях в месте как торговый центр или библиотека. Когда я перемещаюсь в торговый центр с телефоном на базе Android в моей руке, я должен смочь получить ближайший аппаратный ключ, с которым я могу соединиться (Глупая Идея, но я хочу сделать что-то еще с этим).For это, я должен смочь непрерывно просканировать для bluetooth-устройств.
Кто-то может сказать мне, как я заставляю андроид периодически сканировать доступные bluetooth-устройства.
Я думаю, что это так просто, но раньше мне не приходило в голову. Вот ответ,
private BluetoothAdapter mBtAdapter;
mBtAdapter.startDiscovery();
private final BroadcastReceiver mReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
// When discovery finds a device
if (BluetoothDevice.ACTION_FOUND.equals(action))
{
//do something
}
else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action))
{
Log.v(TAG,"Entered the Finished ");
mBtAdapter.startDiscovery();
}
Таким образом, мы должны снова начать обнаружение на ACTION_DISCOVERY_FINISHED
, который будет непрерывно сканировать устройства каждые 12 секунд.
Ваш фрагмент кода должен работать - только это это будет дорого с точки зрения энергопотребления и наверняка убьет ваше устройство / телефон за несколько часов. StartDiscovery () выполняет двухэтапный процесс: поиск устройства путем запроса его, за которым следует обнаружение имени, то есть поиск по страницам и подключение к устройству
. К сожалению, Android не предоставляет никакого API для управления этим и выполняет только запросы, а также существует функция периодических запросов, определенная и поддерживаемая большинством наборов микросхем Bluetooth, в настоящее время Android не имеет API для выполнения периодических запросов, который мог бы быть более идеальным для вашего варианта использования.