How do I use the intent action USER_PRESENT?

15,040

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

Share:
15,040

Related videos on Youtube

saman0suke
Author by

saman0suke

Updated on September 16, 2022

Comments

  • saman0suke
    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
    Jorn Rigter over 2 years
    This should be the accepted answer