通知で 3 つのアクション ボタンを使用してメディア サービスを制御したいのですが、コードの動作例を見つけるのが困難です。Vogella にはチュートリアルがありますが、彼は単一のボタンを使用し、サービスではなくアクティビティを開きます。この種の他のチュートリアルと例をいくつか見つけましたが、サービスと複数のアクションのインテントの構築を示す同様のチュートリアルを持つ 3 つの動作するアクション ボタンを備えたものはありません。また、stackoverflow でのアクション ボタンの使用法の最新の例は、いずれも下位に適用できます。 Android のバージョン、シングル インテント ボタンの使用、...
通知を設定するために使用することを考えているコードは次のとおりです。
//individual intents for each action???
Intent Back = new Intent(this, MusicService.class );
Back.putExtras("back", 1);
Back.putExtras("play", 0);
Back.putExtras("next", 0);
Intent Play = new Intent (this, MusicService.class);
Back.putExtras("back", 0);
Back.putExtras("play", 1);
Back.putExtras("next", 0);
Intent Next = new Intent (this, MusicService.class);
Next.putExtras("back", 0);
Next.putExtras("play", 0);
Next.putExtras("next", 1);
//do I need to make three pending intents????
PendingIntent pIntentback = PendingIntent.getService(this, 0, Back, 0);
PendingIntent pIntentplay = PendingIntent.getService(this, 0, Play, 0)
PendingIntent pIntentnext = PendingIntent.getService(this, 0, Next, 0)
Notification noti = new Notification.Builder(this)
.setContentTitle("Juke Box Hero")
.setContentText("Playing ")
.setSmallIcon(R.drawable.ic_launcher)
.addAction(R.drawable.back, "", pIntentback)
.addAction(R.drawable.play, "", pIntentplay)
.addAction(R.drawable.next, "", pIntentnext)
.build();
NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
noti.flags = Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(0, noti);
ここでいくつか質問があります...
1)上記のコードは、アクションボタン、インテント、および保留中のインテントを設定する方法ですか?
2) サービス内の保留中のインテントによってラップされたインテントを受け取りたいので、getActivity の代わりに getService を呼び出すのは正しいですか?
3) MusicService クラスでインテントを直接受信できる場合、サービスを再起動せずにサービスでインテントを受信するにはどうすればよいですか (したがって、既にメモリに保存されているデータは失われます)。
4) または、BroadcastReceiver クラスを拡張してマニフェストに登録し、対応するインテントを MusicService クラスに送信するレシーバー クラスを作成する必要がありますか?
私は喜んでコードを調べて書くことを理解してください--そして質問する前に数日間それを行ってきましたが、これらの質問に対する簡単な回答が必要です...
ヘルプと指示は大歓迎です