0

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.

4

1 に答える 1