我创建的一些意图过滤器工作正常但是 - 我只会告诉屏幕/手机在更改后处于什么状态。我如何找到当前状态?这是我的过滤器 -
receiver = new EventHandler();
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED); // for calls
registerReceiver(receiver, filter);
即使没有改变,我立即收到电池状态通知。如果其他意图发出这样的虚拟通知会很好。
感谢。
答案 0 :(得分:1)
您只能立即获得电池状态的回报,因为ACTION_BATTERY_CHANGED
是sticky
广播,并且始终保持不变。
其他三个是仅在“动作”发生时发送的一次性广播意图。您需要在各种“经理”类上调用方法才能获得即时状态。
例如,TelephonyManager
采用getCallState()
方法,PowerManager
采用isScreenOn()
方法。
我自己也没有尝试,但文档建议他们会为你需要的东西工作。
请参阅...