1

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

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

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

谢谢。

4

1 回答 1

1

您只能立即获得电池状态的返回,因为ACTION_BATTERY_CHANGED它是一个sticky广播并且始终保持不变。

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

例如,TelephonyManager有一个getCallState()方法,PowerManager哪个有一个isScreenOn()方法。

我自己也没有尝试过,但文档建议它们可以满足您的需求。

看...

电话经理

电源管理器

于 2012-07-28T17:20:05.690 回答