我尝试使用ContentObserver
检测onKeyDown
的音量变化。
但是在通知音量变化之前会有一段时间。
在另一种方法中,我也尝试了class VolumeObserver(private val context: Context, handler: Handler) : ContentObserver(handler) {
var onVolumeChangedListener: ((Int, Int) -> Unit)? = null
private var previousVolume: Int
init {
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
previousVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC)
}
override fun onChange(selfChange: Boolean) {
super.onChange(selfChange)
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
val currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC)
if (previousVolume != currentVolume) {
onVolumeChangedListener?.invoke(previousVolume, currentVolume)
previousVolume = currentVolume
}
}
}
,但是它只能处理唯一的密钥。 (当用户更改音量搜索栏或将其静音时,不会通知我)
https://login.microsoftonline.com/{tenant}/oauth2/authorize? client_id=6731de76-14a6-49ae-97bc-6eba6914391e &response_type=code &redirect_uri=http%3A%2F%2Flocalhost%3A12345 &response_mode=query &resource=https%3A%2F%2Fservice.contoso.com%2F &state=12345
(我不需要在后台执行此操作,只需要在前台使用)
有什么方法可以立即检测音量变化吗?