gpt4 book ai didi

android - 在 Android 上收听音量变化事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:34 30 4
gpt4 key购买 nike

有没有什么方法可以在 Android 上监听音量变化事件,而不只是接管音量按钮?

我发现唯一有效的是 here , 但它仅在音量控制消失后才起作用。

并非所有设备都有音量按钮,我需要在音量变化发生时立即捕获它们,而不是在音量对话框消失之后。

最佳答案

更好的是,您可以按如下方式注册一个ContentObserver:

  getApplicationContext().getContentResolver().registerContentObserver(android.provider.Settings.System.CONTENT_URI, true, new ContentObserver(){...} );

您的 ContentObserver 可能如下所示:

public class SettingsContentObserver extends ContentObserver {
private AudioManager audioManager;

public SettingsContentObserver(Context context, Handler handler) {
super(handler);
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
}

@Override
public boolean deliverSelfNotifications() {
return false;
}

@Override
public void onChange(boolean selfChange) {
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

Log.d(TAG, "Volume now " + currentVolume);
}
}

完成后:

getApplicationContext().getContentResolver().unregisterContentObserver(mContentObserver);

但请注意 - 如果快速按下大量按钮,有时通知似乎会延迟。

关于android - 在 Android 上收听音量变化事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318933/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com