【发布时间】:2014-03-01 10:45:01
【问题描述】:
我正在构建一个使用电源按钮计数来执行某些操作的应用程序,我有一个 BroadcastReceiver 和一个可以帮助我执行此操作的服务。我正在使用 ACTION_SCREEN_OFF、ACTION_SCREEN_ON 和 ACTION_USER_PRESENT 作为意图过滤器,一切正常,每次按下电源按钮都会执行我想要的操作,但接近传感器确实可以在与 ACTION_SCREEN_OFF 和 ACTION_SCREEN_ON 相同的情况下工作。因此,当用户拨打电话并且我的服务在后台运行时,会检查 ACTION_SCREEN_OFF 和 ACTION_SCREEN_ON,因此当呼叫者将设备拿走并靠近他/她的耳朵时,接近传感器会执行相同的操作。我想在这里区分电源按钮按下和接近传感器动作。为了完成这项工作,我应该遵循什么?这是我的代码的一部分,它可能会帮助您理解我要问的内容。
我的类扩展 Service 在其 onCreate() 中有以下代码:
mReceiver=new PowerButtonActionReciever();
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
registerReceiver(mReceiver, filter);
扩展 BroadcastReceiver 的类在其 onReceive() 方法中捕获电源按钮单击:
@Override
public void onReceive(Context context, Intent intent)
{
//perform some action
}
【问题讨论】:
标签: android