ブロードキャストを受信したときにトーストを表示し、アクションが BluetoothAdapter.ACTION_STATE_CHANGED に等しいアプリがあります。すべて正常に動作していますが、ここでの問題は、Bluetooth がオンになっているときに何かを実行したいが、Bluetooth がボタンからアクティブになっている場合です。他のアプリから Bluetooth を開始したとき、受信機は問題なく時間通りに動作するため、ブロードキャストの到着が遅れているか、アプリの受信が遅れているようです。
問題は何ですか?マニフェストに受信者を登録しました。
bluetoothAdapter.ACTION_STATE_CHANGEDのときに表示するトーストが2つあり、無限に表示されるため、無限にループすることがあるようです
なぜこれと以前のことが起こっているのか考えていますか?
レシーバー:
public class Receivers extends BroadcastReceiver {
protected static AlertObject BTTurningOn = new AlertObject();
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
final String action = intent.getAction();
this.context=context;
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
BluetoothAdapter.ERROR);
if(state == BluetoothAdapter.STATE_TURNING_ON && BTTurningOn.Activated == true)
{
Alert(BTTurningOn);
}
}
}
BTTurningOn は、ブロードキャスト メッセージに参加するかどうかを知るためのブール変数を持つ単なるオブジェクトです。
マニフェストの重要な部分は次のとおりです。
<receiver android:name=".Receivers">
<intent-filter>
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
</intent-filter>
</receiver>
他のアプリまたは調整/ワイヤレス接続からBluetoothを起動するとうまく機能しますが、ランチャーのアイコンまたは通知が表示される上部バーから起動すると機能しません.GO Launcher EXバージョン2.76を使用しています
私の他のアプリはブロードキャストを取得し、このアプリが取得していないサイトからうまく機能しますが、違いは受信機を登録する場所だけです。このアプリはマニフェストにあり、他のアプリは1つのアクティビティにあります