Broadcast Receiver для обнаружения устройств Bluetooth не работает - PullRequest
0 голосов
/ 21 октября 2018

Здравствуйте, я следовал примеру в https://developer.android.com/guide/topics/connectivity/bluetooth, и мой широковещательный приемник, возможно, не работает.Я использую Android 8.1 на своем Android устройстве Xiaomi mi A1.

@Override
protected void onCreate(Bundle savedInstanceState) {
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
    registerReceiver(mReceiver, filter);
    bluetoothAdapter.startDiscovery();
}
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (BluetoothDevice.ACTION_FOUND.equals(action)) {
            // Discovery has found a device. Get the BluetoothDevice
            // object and its info from the Intent.
            BluetoothDevice device = (BluetoothDevice) intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            String deviceName = device.getName();
            String deviceHardwareAddress = device.getAddress(); // MAC address
            Toast.makeText(MainActivity.this, deviceName, Toast.LENGTH_SHORT).show();
            Toast.makeText(MainActivity.this, deviceHardwareAddress, Toast.LENGTH_SHORT).show();
            mDeviceList.add(deviceHardwareAddress);
            ArrayAdapter arrayAdapter = new ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,mDeviceList);
            listV.setAdapter(arrayAdapter);
        }
    }
};

Спасибо!

ПРИМЕЧАНИЕ

Для Android Api 21 Broadcast приемник работает нормально, есть ли изменения, которые я должен сделать, чтобы сделать эторабота для Android 8.1?

1 Ответ

0 голосов
/ 21 октября 2018

В манифесте я поставил разрешения и другие службы, такие как start stop bluetooth и обнаружил, что сопряженные устройства работают нормально ...

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
...