【发布时间】:2015-04-13 11:41:00
【问题描述】:
我在 Manifest.xml
中编写了一个接收器来检测设备运动是否发生变化 <receiver android:name="com.hanuman.sensor.receiver.SensorReceiver" >
<intent-filter
android:enabled="true"
android:exported="false" >
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
而里面receiver onReceive()方法代码是:
String action = intent.getAction();
if (action.equals(Intent.ACTION_USER_PRESENT)) {
System.out.println("User is present");
Intent s = new Intent(context, MainActivity.class);
s.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(s);
} else {
System.out.println("User is not present");
}
最后我的问题是,当传感器运动时没有检测到传感器,它正在检测我的设备何时解锁然后它正在调用我的 MainActivity,但我想检测我的设备运动何时改变然后我想在接收器中检测。我该怎么做?
【问题讨论】:
-
你的 CPU 是醒着还是睡着了?虽然您正在接收广播,但您无法确定运动,如果它进入睡眠模式,您需要唤醒您的 CPU。从check this开始
-
如果它处于睡眠模式,那么我的设备运动没有被检测到?
-
如果您的设备处于睡眠模式 - 遗憾的是没有,请使用部分唤醒锁唤醒您的设备。但请务必在完成操作后释放资源。这对电池至关重要。
-
好的。如果我的设备处于唤醒模式,那么它将如何检测运动?
-
您需要对运动传感器进行编码。从您的 onReceive 调用该代码。
标签: android broadcastreceiver sensors android-sensors