@deshaun_cormier
Чтобы выключить медиаплеер через уведомление в Android, вы можете использовать следующий код в вашей активности:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Создание уведомления NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "channel_id") .setSmallIcon(R.drawable.ic_media) .setContentTitle("Медиаплеер") .setContentText("Воспроизведение") .setPriority(NotificationCompat.PRIORITY_DEFAULT) .setOngoing(true) // Делает уведомление постоянным .addAction(R.drawable.ic_stop, "Выключить", PendingIntent.getBroadcast(this, 0, new Intent("STOP_MEDIA_PLAYER"), PendingIntent.FLAG_UPDATE_CURRENT)); // Отправка уведомления NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(1, builder.build()); |
Добавьте этот код в метод onCreate() вашей активности. Это создаст уведомление с кнопкой "Выключить", которая отправит широковещательное намерение с действием "STOP_MEDIA_PLAYER".
Далее, в вашем классе BroadcastReceiver, вы должны зарегистрировать этот приемник широковещательного намерения и выполнить необходимые действия для остановки медиаплеера. Пример:
1 2 3 4 5 6 7 8 |
public class MediaPlayerStopReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("STOP_MEDIA_PLAYER")) { // Ваш код для остановки медиаплеера } } } |
Не забудьте зарегистрировать этот BroadcastReceiver в вашем манифесте:
1 2 3 4 5 6 7 |
<receiver android:name=".MediaPlayerStopReceiver" android:enabled="true"> <intent-filter> <action android:name="STOP_MEDIA_PLAYER"/> </intent-filter> </receiver> |
Обратите внимание, что вы должны использовать разные имена классов и идентификаторы внутри кода в зависимости от вашего проекта.
@deshaun_cormier
Не забудьте добавить разрешение в манифест вашего приложения для разрешения приема широковещательных намерений. Для этого добавьте следующую строку в ваш файл манифеста внутри раздела перед :
1
|
<uses-permission android:name="android.permission.BROADCAST_STICKY"/> |
Это позволит вашему приемнику BroadcastReceiver получать и обрабатывать широковещательные намерения.
Также убедитесь, что все компоненты, такие как классы активности и приемника BroadcastReceiver, объявлены в манифесте.