android.intent.action.MEDIA_BUTTONをリッスンするbroadcastreceiverを作成し、それからextra_key_eventを取得してそれに応じて動作させたかったのです。どういうわけか、受動的な行動は行われません。私のマニフェストにandroid broadcastreceviver onreceiveアクションが実行されていません
:
receiver android:name="MediaButtonReceiver"
intent-filter
action android:name="android.intent.action.MEDIA_BUTTON"
intent-filter
受信機
私broadcastreceiverで:
私は音量ダウンキーを押したときしかし、何も表示されないpublic class MVCS extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
/* handle media button intent here by reading contents */
/* of EXTRA_KEY_EVENT to know which key was pressed */
KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
}
}
}
。
ご協力いただければ幸いです。
助けてくれてありがとう。私の活動が実行されていなくても、放送の受信者はサービスのように継続的にバックグラウンドで実行されますか? – kevdliu
ブロードキャストレシーバはサービスと似ていません。何も連続して実行されるわけではなく、ちょうどあなたが何らかのイベントにアタッチするだけのリスナです。イベントが発生したときにだけ実行され、応答はそれほど速くはないことを覚えておいてください。聴取者が解雇されるまで300〜400mSがかかることがあります。 – ruhalde