Bluetooth デバイス (IOIO 開発者ボード) を使用しています。
デバイスが切断されたときに聞きたいです。上記のコードで問題なく動作していますが、瞬時に認識されません。Bluetooth 開発者ボードの電源を切ると、Android が接続が失われたことを認識するまで 16 秒ほど待たなければなりません。
理由を知っている人はいますか?接続がそれほど頻繁にチェックされないのは、Android の内部制限であるべきだと聞きました。まだそこにある場合、Bluetoothデバイスを「ping」するスレッドを作成する方法を知っている人はいますか? Android の BluetoothChat の例と非常に似ていると思いますが、自分で修正することはできませんでした。
ありがとう。
フェリックス
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
IntentFilter filter1 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED);
IntentFilter filter2 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
this.registerReceiver(mReceiver, filter1);
this.registerReceiver(mReceiver, filter2);
}
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED.equals(action)) {
//Device is about to disconnect
Toast.makeText(context,"The device is about to disconnect" , Toast.LENGTH_LONG).show();
}
else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
//Device has disconnected
Toast.makeText(context,"Device has disconnected" , Toast.LENGTH_LONG).show();
}
}
};