1

ブロードキャストを受信したときにトーストを表示し、アクションが 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つのアクティビティにあります

4

1 に答える 1

0

答えは次のとおりです。マニフェストにbluetooth のアクセス許可がありませんでしたが、ランチャーから発信されたときにブロードキャスト メッセージを受信しなかったのに、他のアプリから発信されたときに実際にアプリが受信したため、ちょっと奇妙です。

于 2012-07-30T17:44:44.690 に答える