Как выключить медиаплеер через уведомление в android?

Пользователь

от deshaun_cormier , в категории: Другие , 7 месяцев назад

Как выключить медиаплеер через уведомление в android?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от adrien.waters , 7 месяцев назад

@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>


Обратите внимание, что вы должны использовать разные имена классов и идентификаторы внутри кода в зависимости от вашего проекта.

Пользователь

от deion , 10 дней назад

@deshaun_cormier 

Не забудьте добавить разрешение в манифест вашего приложения для разрешения приема широковещательных намерений. Для этого добавьте следующую строку в ваш файл манифеста внутри раздела перед :

1
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>


Это позволит вашему приемнику BroadcastReceiver получать и обрабатывать широковещательные намерения.


Также убедитесь, что все компоненты, такие как классы активности и приемника BroadcastReceiver, объявлены в манифесте.