У меня возникла проблема с тем, что я запускаю услугу с помощью Intent в регистре onCreate()
BroadcastReceiver
, а затем в отменил регистрацию BroadcastReceiver
. В методе onHandleIntent()
Я запускаю открытие для устройств Bluetooth. Проблема в том, что я мой BroadcastReceiver
уничтожен до того, как обнаружено какое-либо устройство, поэтому я не могу ничего сделать с намерением BluetoothDevice.ACTION_FOUND
. Я попытался переместить startDiscovery()
на onCreate()
, но результаты не найдены. Мой код выглядит следующим образом:Метод Android-сервиса onDestroy вызван до завершения сканирования Bluetooth
public class BluetoothService extends IntentService{
private BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
private final String SMART_TOKEN_ADDRESS = "F0:E7:7E:5F:63:70";
private final BroadcastReceiver receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.v("BLUETOOTH","found it!");
}
};
public BluetoothService() {
super("BluetoothService");
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(){
super.onCreate();
Log.v("SERVICE", "Just got created");
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(receiver, filter);
btAdapter.startDiscovery();
}
@Override
protected void onHandleIntent(Intent intent) {
// TODO Auto-generated method stub
Log.v("BLUETOOTH", "Discovery just started");
//btAdapter.startDiscovery();
}
@Override
public void onDestroy() {
super.onDestroy();
Log.v("BLUETOOTH","Just got destroyed!");
unregisterReceiver(receiver);
}
}
Лог выглядит следующим образом: 1. Просто получил создано 2. Открытие только начал 3. Просто получил уничтожены! 4. Получено android.bluetooth.device.action.FOUND
Спасибо за помощь! T.