我已经设置了一个sudo apt-get install -y openjdk-8-jdk
sudo apt-get install -y default-jdk
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
来监听通知。我需要修改以下方法捕获的通知的声音/警报音:
NotificationListenerService
到目前为止我尝试过的(不播放声音):
override fun onNotificationPosted(sbn: StatusBarNotification?) {
super.onNotificationPosted(sbn)
// Modify the tone here and notify ( the notification ) it again
}
我的问题在这里:
如何修改上述方法中捕获的
notification.notification.defaults = android.app.Notification.DEFAULT_VIBRATE notification.notification.sound = Uri.parse(sharedPreferences.getString(getString( R.string.ringtone_key ) , Settings.System.DEFAULT_NOTIFICATION_URI.toString() )) manager.notify( RECREATE_NOTIFICATION_ID , notification.notification )
的声音/提示音并将其显示给用户?我需要重新发布/重新创建吗?
答案 0 :(得分:1)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
{
if (soundUri != null)
{
// Changing Default mode of notification
notificationBuilder.setDefaults(Notification.DEFAULT_VIBRATE)
// Creating an Audio Attribute
val audioAttributes = AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_ALARM)
.build()
// Creating Channel
val notificationChannel = NotificationChannel("CH_ID", "Testing_Audio", NotificationManager.IMPORTANCE_HIGH)
notificationChannel.setSound(soundUri, audioAttributes)
mNotificationManager.createNotificationChannel(notificationChannel)
}
}
答案 1 :(得分:1)
要在ismail alaoui的答案中添加一些内容-您所做的工作可能应该适用于Oreo之前的android设备,但是对于Oreo及更高版本,您需要创建一个通知频道,将自定义声音分配给该频道。请参阅https://developer.android.com/guide/topics/ui/notifiers/notifications。
还请记住,用户可能随时更改通知频道的声音:)
因此,仅剩下一个问题-您要在哪个Android版本上测试解决方案?