Intent を使用してサービスを開始し、onCreate()
メソッドBroadcastReceiver
を登録してから登録をonDestroy()
解除するという問題がありBroadcastReceiver
ます。メソッドonHandleIntent()
で、Bluetooth デバイスの検出を開始します。問題は、デバイスが見つかる前に私が破壊されているため、意図的BroadcastReceiver
に何もできないことです。BluetoothDevice.ACTION_FOUND
に移動しようとしstartDiscovery()
ましonCreate()
たが、結果はありません。私のコードは次のようになります。
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.