У меня странная проблема.Я реализую соединение Bluetooth в приложении для Android.В манифесте у меня есть разрешения для:
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Также у меня есть следующие намерения в действии:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
<action android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" />
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Поскольку я использую службу и приемник для процесса Bluetooth в фоновом режиме, ятакже есть эти разрешения для службы:
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
<action android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" />
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
Теперь внутри службы я звоню по следующему коду:
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
//it is true. bla bla bla
}else{
//it is false. bla bla bla
}
Ну, я не могу понять почему, если я вхожув режиме отладки getPackageManager ничего не возвращает.Если я добавлю логическую переменную с этой строкой в if, я ясно вижу, что ничего не возвращается.Фактически, это похоже на то, что код был убит в тот момент, потому что к любой другой строке в коде обращаются, но я все еще могу управлять приложением.Это потому, что из-за ошибки убивается сервис, а не само приложение?как я могу отладить это?Потому что я не вижу ни одной строки ошибки.Любая идея, откуда исходит ошибка?
РЕДАКТИРОВАТЬ: я работаю на Android 8.0