私は、Bluetoothを管理する設定アプリで「新しいアプリ」をやっています。私は次の問題を抱えている:私は私の活動は、次のandroidの意図はフレームワークによって送信されたときに起動されるようにしたい:android.bluetooth.device.action.PAIRING_REQUESTマニフェストのインテントフィルタでアクティビティが起動しない
をこのため、私は中のAndroidManifest.xmlにこれを追加しました設定アプリ:
<activity android:name=".mybt.MyBluetoohSettings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
問題は、その意図がフレームワークによって送信されたら....私のアプリは起動していません!
私も(MAIN & PAIRING_REQUEST意図して)1つだけの意図・フィルタを使用して、それを試してみた
理論的にはこれが右、動作するはず?私は間違って何をしていますか?提案?
ありがとうございました!
はい、私はしました元のBluetoothアプリでそれを見た。しかし、私はなぜ彼らがそれを行うのか分かりません。代わりにアクティビティを使用できないのはなぜですか?あなたはそれを説明できますか? 私の問題は、今、私の活動はインテントフィルターを備えた放送受信機オブジェクトを持っているということです。したがって、私のアクティビティがインスタンス化されると、レシーバが登録され、そのインテントを処理できます。しかし、もしそうでなければ...私はそれを起動するアンドロイドします。このアーキテクチャの提案はありますか? ありがとう! – sirlion
Androidの中の放送の性質だけです。ペアリング要求に関心のある複数のアプリケーションが存在する可能性があるため、ブロードキャスト受信者が使用されます。しかし、その動作は同じでなければなりません。ブロードキャストレシーバーがマニフェストに登録されている場合、Androidがアプリケーションを起動し、その時点でアプリケーションが実行されていない場合でも、イベントが発生するとBroadcastReceiverが呼び出されます。アプリがクラッシュしたり、強制終了されたりすると、これは機能しません。これが望ましい動作であれば、Androidが再起動しようとする固定サービスを作成する必要があります。 – Mark