在HoneyComb或ICS(Samsung)设备上未收到Intent.ACTION_USER_PRESENT

时间:2012-04-26 08:33:03

标签: android android-intent android-3.0-honeycomb android-4.0-ice-cream-sandwich

我设置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);
        }
    }
}

问题:

  1. 在Android 3.x&amp ;;上使用这些意图操作是否有一些技巧? 4.x的?
  2. 也许这是一个众所周知的三星问题?
  3. 或许我在这些设备上忽略了一些设备设置?

1 个答案:

答案 0 :(得分:2)

ubuntudroid对此答案(android app with service only)发表了评论,表示您需要至少开始一次活动才能正确接收所需的意图。

显然在Android 3.0中推出。

我还没有测试过这个理论,但它会解释你所看到的。