I have a BackgroundReceiver
set up to receive the android.intent.action.USER_PRESENT
in the manifest file as per:
<receiver android:name="com.demo.MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
My overridden onReceive(Context, Intent)
method is very simple:
@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);
}
}
}
- This tested perfectly on 2.1, 2.2 & 2.3 devices (HTC Desire, HTC WildFire, Motorola Razr).
- This does not seem to work on HoneyComb (Samsung Galaxy Tab 10.1) or ICS (Samsung Galaxy Nexus) devices.
- As per this bug (USER_PRESENT never fires on honeycomb and ICS when keyguard is disabled), I set the keyguard on the failing devices. It did not help.
Questions:
- Is there some trick to using these intent actions on Android 3.x & 4.x?
- Perhaps this is a known Samsung issue?
- Or perhaps there is some device setting I have neglected on these devices?