获取屏幕/电话状态而无需等待意向通知

时间:2012-07-28 16:04:51

标签: android android-intent

我创建的一些意图过滤器工作正常但是 - 我只会告诉屏幕/手机在更改后处于什么状态。我如何找到当前状态?这是我的过滤器 -

    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);

即使没有改变,我立即收到电池状态通知。如果其他意图发出这样的虚拟通知会很好。

感谢。

1 个答案:

答案 0 :(得分:1)

您只能立即获得电池状态的回报,因为ACTION_BATTERY_CHANGEDsticky广播,并且始终保持不变。

其他三个是仅在“动作”发生时发送的一次性广播意图。您需要在各种“经理”类上调用方法才能获得即时状态。

例如,TelephonyManager采用getCallState()方法,PowerManager采用isScreenOn()方法。

我自己也没有尝试,但文档建议他们会为你需要的东西工作。

请参阅...

TelephonyManager

PowerManager