我有一个BackgroundReceiver
设置来接收android.intent.action.USER_PRESENT
清单文件中的内容:
<receiver android:name="com.demo.MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
我的重写onReceive(Context, Intent)
方法非常简单:
@Override
public void onReceive(Context context, Intent intent)
{
if (intent != null)
{
if (Intent.ACTION_USER_PRESENT.equals(intent.getAction())
{
// wrapper for Log.d(String, String)
Dbug.log("MyBroadcastReceiver: [" + intent.getAction() + "]");
// this calls a service
serviceExample(context, intent);
}
}
}
- 这在 2.1、2.2 和 2.3 设备(HTC Desire、HTC WildFire、摩托罗拉 Razr)上完美测试。
- 这似乎不适用于 HoneyComb(Samsung Galaxy Tab 10.1)或 ICS(Samsung Galaxy Nexus)设备。
- 根据这个错误(当键盘保护被禁用时 USER_PRESENT 永远不会在蜂窝和 ICS 上触发),我在故障设备上设置了键盘保护。它没有帮助。
问题:
- 在 Android 3.x 和 4.x 上使用这些意图操作有什么技巧吗?
- 也许这是一个已知的三星问题?
- 或者也许我在这些设备上忽略了一些设备设置?