У меня есть приложение для Android, которое использует Bluetooth.Чтобы всегда иметь блютуз, я уже внедрил Сервис, чтобы он всегда был включен, даже если приложение находится в фоновом режиме.Поскольку для Bluetooth будет много кода, я решил создать ListActivity для всех методов и так далее, связанных с Bluetooth.Каждый раз, когда я запускаю службу, создается новый объект этого класса Bluetooth.
Теперь, имея в виду эту деталь, мой вопрос: если я делаю адаптер. Обнаружение в этом объекте, как мне поступитьс приемником вещания?Для получателя у меня есть:
private final BroadcastReceiver BEReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int a = 1;
a++;
};
Я положил это в сервис и в объект, чтобы сделать различные тесты.Для добавления получателя у меня есть:
IntentFilter BEFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
mycontext.registerReceiver(BEReceiver, BEFilter);
Я добавил эти строки в начале службы, чтобы вызывать ее локально, но она не работает.Затем я создал BEFilter внутри объекта для Bluetooth, и здесь я поместил BEFilter объекта Bluetooth.Ни то, ни другое не сработало.Я также добавил эти строки в конструктор объекта bluetooth, чтобы сделать это локально, но это тоже не сработало.Что я должен делать?Мне нужно добавить устройства при обнаружении адаптера.
В манифесте у меня есть:
<intent-filter>
<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" />
</intent-filter>
для объекта bluetooth, службы и основной деятельности, где создается служба.
Моя проблема в том, что BEReceiver никогда не вызывается, и у меня нет ошибок в отладке.
В манифесте у меня также есть:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <!-- BLE needs this! -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><!-- BLE needs this! -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />