@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, объявлены в манифесте.