シンプルな音楽プレーヤーで作業しています。音楽プレイヤーは状態に名前を付け、曲を再生したり、再生を一時停止したり、次の曲に転送したり、前の曲に戻ったり、完全に停止したりすることができます。曲を再生すると、アーティスト名と曲名が表示されます。この通知には、「停止」、「次へを一時停止」の3つのボタン(アクション)もあります。アクティビティを開始せずに通知からアクションを使用する
私が問題を抱えているのは、いずれかのアクションがクリックされたときに、そのアクションに関連する再生コントロールが起動されていることを確認していることです。私はAndroidの通知:http://developer.android.com/guide/topics/ui/notifiers/notifications.htmlを検索しましたが、通知アクションについてあまりにも多くの情報を明確にしたり、捧げたりしていません。 注:下記のコードはすべて、次のパッケージの下に書かれている:com.deadpixels.lightここ
は、通知の上、「次へ」ボタンをクリックすると関連するべきであるインスタンスのためのシンプルなアクション(あります .playerとアクティビティが呼び出されます。ここではPlayerActivity
public void nextSong() {
if (position == songs.size() -1) {
Toast.makeText(this, "No more songs on queue", Toast.LENGTH_SHORT).show();
if(mPlayer.isPlaying()) {
return;
}
else {
buttonPlay.setImageResource(R.drawable.button_play);
}
return;
}
else {
position++;
playSong(songs.get(position));
}
}
は私がしようとしたものです:
Intent nextIntent = new Intent(KEY_NEXT);
PendingIntent nextPendingIntent = createPendingResult(0, nextIntent, 0);
public static final String KEY_NEXT = "com.deadpixels.light.player.PlayerActivity.nextSong";
し、私はaddAction()を介して通知することを追加します:はNextIntentのためのアクションがある場合は
mBuilder.addAction(R.drawable.not_action_next, "Next", nextPendingIntent);
は、あなたたちは、私が試みることができる他に何を知っていますか?上で説明したものを使用すると、何もしないで、通知が表示され、3つのアクションボタンがありますが、それらをクリックすると何もしません。
ある時点で、アクション名を含むインテントフィルタを追加したとしたら、同じ名前空間にすべて同じ名前が付けられていると思ったのですが、どうしてでしょうか?
受信者のインスタンスを保管してください。 –
@anonymousあなたの活動やサービスにそれを参照してください。 – acj
なぜ、BroadcastReceiverをマニフェストに登録して、別のクラスとして作るのですか? – streamride