我想知道音量是否已经改变.阅读其他帖子我发现这段代码可以注册一个ContentObserver,并在发生变化时获取一个事件.
我的问题是我不知道如何知道改变了什么.我的意思是,我得到一个OnReceive(),但是如何获得额外的信息(例如,按下了什么音量键).
我的问题是我不知道如何知道改变了什么.我的意思是,我得到一个OnReceive(),但是如何获得额外的信息(例如,按下了什么音量键).
我也收到很多不需要的事件,例如,单击“菜单”按钮也会触发此事件,但尚未发生任何变化(尚未).
这是我的代码.
谢谢
public class clsSettingsContentObserver extends ContentObserver { public Context Contexto=null; //This is for displaying Toasts public clsSettingsContentObserver(Handler handler) { super(handler); } @Override public boolean deliverSelfNotifications() { return super.deliverSelfNotifications(); } @Override public void onChange(boolean selfChange) { super.onChange(selfChange); //How do I get more info here????? ShowToast("Settings change detected"); } private void ShowToast(String strMensaje) { Toast toast1 = Toast.makeText(Contexto,strMensaje,Toast.LENGTH_SHORT); toast1.show(); }; }
这就是我注册它的方式:
clsSettingsContentObserver oSettingsContentObserver = new clsSettingsContentObserver( new Handler() ); oSettingsContentObserver.Contexto = this; //This is for displaying Toasts getApplicationContext().getContentResolver().registerContentObserver( android.provider.Settings.System.CONTENT_URI,true,oSettingsContentObserver);