我正在创建一个带有搜索栏的Android应用,它可以控制android设备的媒体音量。现在,如果通过使用音量按钮或更改设备的默认音量搜索栏来更改设备的媒体音量,我也必须更新搜索栏。
所以我的问题是:有什么办法可以监听android中的音量变化,以便在设备音量变化时可以更新应用程序专用的搜索栏?
我找到了一种方法。但是,只要设置发生任何更改,它就会被触发。
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);
}
}
还有更好的方法吗?请提出建议。 预先感谢