Итак, я программирую приложение для Android, которое использует обнаружение Bluetooth устройств.Вот код, который я использую для запуска обнаружения.
try {
myBluetoothAdapter.startDiscovery();
Log.d("Bluetooth Started successfully","yes");
} catch (Error e) {
Log.d("FAILED","Ya failed mate");
e.printStackTrace();
}
Затем я регистрирую BroadcastReceiver для наблюдения за обнаружением устройств.Вот мой код для этого
IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
final ArrayList<String> stringArrayList = new ArrayList<>();
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(getApplicationContext(),android.R.layout.simple_list_item_1,stringArrayList);
final ListView listView = findViewById(R.id.listView);
listView.setAdapter(arrayAdapter);
BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.d("ACTION RECEIVED","Action was received");
Log.d("Device Name", String.valueOf(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)));
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
stringArrayList.add(device.getName());
arrayAdapter.notifyDataSetChanged();
listView.invalidateViews();
}
}
};
registerReceiver(myReceiver,intentFilter);
ListView, arrayAdapter и stringArrayList - это просто вещи, в которые я «регистрируюсь».
Проблема в том, что всякий раз, когда я запускаю этот код, я получаюэта ошибка и мой код не работает.Я предполагаю, что причина, по которой он не работает, из-за этой ошибки.
W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.bluetooth.adapter.action.DISCOVERY_STARTED flg=0x10 } to com.verizon.messaging.vzmsgs/com.verizon.vzmsgs.receiver.DevicePairingListener
Может кто-нибудь сказать мне, что означает эта ошибка, а также как ее исправить?
Iтакже найдите другие вопросы о переполнении стека с ошибками, которые выглядят очень похожими;например, вместо Bluetooth это будет в контексте BOOT_COMPLETED, ACTION_POWER_DISCONECTED или BATTERY_LOW.Как те похожи на это.