Android Kotlin-如何恢复音量变化?
我试图通过每次更改来使用Android Kotlin-如何恢复音量变化?,android,kotlin,broadcastreceiver,android-audiomanager,Android,Kotlin,Broadcastreceiver,Android Audiomanager,我试图通过每次更改来使用AudioManager设置常量音量 这是我的密码: private val broadcastReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if ("android.media.VOLUME_CHANGED_ACTION" == intent.action) {
AudioManager
设置常量音量
这是我的密码:
private val broadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if ("android.media.VOLUME_CHANGED_ACTION" == intent.action) {
audioManager.setStreamVolume(AudioManager.STREAM_RING, constDeviceVolume, 0)
}
}
}
问题在于it行audioManager.setStreamVolume(audioManager.STREAM\u RING,constDeviceVolume,0)
触发onReceive()
fun
我需要在不触发
或receive()的情况下更改音量。
乐趣或替代方法。也许您可以这样处理
private val broadcastReceiver = object : BroadcastReceiver() {
var wasVolumeChangedByApp = false
override fun onReceive(context: Context, intent: Intent) {
if ("android.media.VOLUME_CHANGED_ACTION" == intent.action && !wasVolumeChangedByApp) {
audioManager.setStreamVolume(AudioManager.STREAM_RING, constDeviceVolume, 0)
wasVolumeChangedByApp = true
return
}
wasVolumeChangedByApp = false
}
设置布尔标志(指示应用程序修改了卷)时,onReceive()的处理将被忽略。然后重置此标志,以便根据需要处理随后的onReceive调用