私は、BTをオンまたはオフにするためのボタンが付いたアプリを持っています。私はそこに次のコードを持っています。BluetoothAdapterに対する状態の変化を検出していますか?
public void buttonFlip(View view) {
flipBT();
buttonText(view);
}
public void buttonText(View view) {
Button buttonText = (Button) findViewById(R.id.button1);
if (mBluetoothAdapter.isEnabled() || (mBluetoothAdapter.a)) {
buttonText.setText(R.string.bluetooth_on);
} else {
buttonText.setText(R.string.bluetooth_off);
}
}
private void flipBT() {
if (mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.disable();
} else {
mBluetoothAdapter.enable();
}
}
私はBTの状態を反転させ、UIを更新するButtonTextを呼び出すボタンFlipを呼び出しています。しかし、私が抱えている問題は、BTがオンになるのに数秒かかることです。この秒の間に、BTのステータスが有効にならず、ボタンが2秒後にオンになってもBluetoothがオフになっています。
私はBluetoothAdapter androidのマニュアルでSTATE_CONNECTING
定数を見つけましたが...私はそれを使用する方法を知らないだけで、初心者でもあります。
だから、私は2つの質問持っている:ときBTの状態が変化するよう
- は、動的BT状態に(ボタンや画像など)UI要素を結びつけるためにそこの方法です、ボタンも同様に変更されますか?
- そうでなければ、私はボタンを押して正しい状態にしたいと思うでしょう(私はそれが2秒でオンになるので、接続していてもBTをオンにしたいと思います)。これはどうすればいいですか?あなたが
BluetoothAdapter
の状態の変更をリッスンするようにBroadcastReceiver
を登録したいと思うでしょう
あなたはブール値を使用して、BTがオンに開始されると変更するboolean型の状態をチェックし、これをtrueに設定することはできませんボタン? –
このAOSPコードを見て、ブルートゥースのオン/オフの変更をどのように追跡しているかを確認してください:http://androidxref.com/5.1.0_r1/xref/frameworks/base/services/core/java/com/ android/server/BluetoothManagerService.java –