How do I use the intent action USER_PRESENT?
Solution 1
I got it to work by using registerReceiver in the onUpdate method of the AppWidgetProvider class and passing an instance of the BroadcastReceiver class to register the Intent.ACTION_USER_PRESENT, since adding it only in the Manifest was not doing anything. Thank you!
Solution 2
Remove android:exported="false"
android:exported:
Whether or not the broadcast receiver can receive messages from sources outside its application — "true" if it can, and "false" if not. If "false", the only messages the broadcast receiver can receive are those sent by components of the same application or applications with the same user ID.
Source : developer.android.com
Solution 3
Remove android:exported="false"
. That worked for me on Stock Android 5
Related videos on Youtube
saman0suke
Updated on September 16, 2022Comments
-
saman0suke over 1 year
I have a clock widget application, and I need to recognize when the phone has been unlocked or not, I believe I can use action USER_PRESENT for that, but I can't get it to launch in the BroadcastReceiver class, I set it in the manifest like this:
<receiver android:name="com.myApp.myApp.MyWidgetIntentReceiver" android:exported="false" android:label="widgetBroadcastReceiver" > <intent-filter> <action android:name="android.intent.action.USER_PRESENT" > </action> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/demo_widget_provider" /> </receiver>
And this is how I trying to get it in the BroadcastReceiver:
public class MyWidgetIntentReceiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(Intent.ACTION_USER_PRESENT){ Log.i("TICK", intent.getAction()); } } }
It's not firing after I unlock the phone, can you help me out or provide me a better way to check when the phone has been unlocked? thanks!
-
Jorn Rigter over 2 yearsThis should be the accepted answer