Я использовал ответ DHAVAL ASODARIYA , но мне пришлось добавить немного больше, чтобы я ответил сам.
Я заменил ниже определение переменной,
AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
с этим,
AudioManager audioManager;
А в методе onCreate заменить строку ниже,
AudioManager am = (AudioManager)getSystemService(AUDIO_SERVICE);
с этим,
audioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
Я добавил
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
к манифесту, потому что требуется не беспокоить доступ
и добавил это
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& !notificationManager.isNotificationPolicyAccessGranted()) {
Intent intent = new Intent(
android.provider.Settings
.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
}
Чтобы проверить, есть ли у него доступ, а если нет, перейдите на страницу, чтобы сделать это.
Это исправило исключение безопасности, которое вызвало фатальную ошибку, и теперь приложение работает без сбоев.