Неявная трансляция android.bluetooth.device.action.ACTION_ACL_CONNECTED НЕ работает - PullRequest
0 голосов
/ 11 мая 2018

Мой приемник не вызывается, когда я объявляю неявный широковещательный приемник в AndroidManifest.

<receiver
    android:name=".BluetoothConnectionReceiver_"
    android:enabled="true"
    android:exported="true"

    android:permission="android.permission.BLUETOOTH,
    android.permission.BLUETOOTH_ADMIN">
    <intent-filter>
            <action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
            <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
    </intent-filter>
</receiver>

Я понимаю, что в Oreo есть ограничение на некоторые неявные трансляции. Но в документе https://developer.android.com/guide/components/broadcast-exceptions, ACL_CONNECTED и ACL_DISCONNECTED не входят в их число.

1 Ответ

0 голосов
/ 03 апреля 2019

Объявить <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> в вашем AndroidManifest, и вы должны проверить во время выполнения, чтобы убедиться, что разрешение предоставлено для версий> = Lollipop.

Используйте этот код:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
    } else {
        //Permission is already granted
    }

Используя классы ContextCompat и ActivityCompat, вы не проверяете, является ли работающая версия SDK / OS> = Lollipop. В случае версии ContextCompat.checkSelfPermission() вернет true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...