Tengo un widget de reloj de la aplicación, y tengo que reconocer cuando el teléfono ha sido desbloqueado o no, creo que puedo utilizar la acción USER_PRESENT por que, pero no puedo conseguir que se inicie en el BroadcastReceiver clase, lo puse en el manifiesto como este:

    <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>

Y esto es lo que estoy tratando de conseguir en el 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());          
        }
    }

}

No disparo después de que yo desbloquear el teléfono, me puede ayudar o aportar una mejor manera de comprobar si el teléfono ha sido desbloqueado? gracias!

  • El de abajo de la pila de flujo de enlace debe probablemente ayudará a: stackoverflow.com/questions/3446202/…
  • He probado tu código, y encontré que funciona bien. Puede recibir ACTION_USER_PRESENT cuando se activa la aplicación. Pero cuando alguien matar a su proceso en segundo plano, tarda 1 o más segundos para reiniciar el proceso para su emisión. Y en este intervalo, no puede recibir ACTION_USER_PRESENT. Espero que ayude.
  • Podría publicar todo el código? He visto algunos ejemplos donde el uso de registerReceiver y adjuntar un IntentFilter, pero en mi código, me acaba de definir los filtros en el manifiesto, donde tengo como 4 acciones, todas ellas obras, sino que están definidos por mí, no de acciones en el sistema, con este no puedo ir a trabajar.
InformationsquelleAutor saman0suke | 2014-02-25

3 Comentarios

  1. 4

    Quitar android:exported="false"

    android:exporta:

    Si o no la emisión receptor puede recibir mensajes de fuentes fuera de su aplicación — «true» si se puede, y «false» si no. Si es «false», el único de los mensajes de la emisión receptor puede recibir son los enviados por los componentes de la misma aplicación o aplicaciones con el mismo ID de usuario.

    Fuente : developer.android.com

  2. 2

    Yo tengo que trabajar mediante registerReceiver en el método onUpdate de la AppWidgetProvider clase y pasar una instancia de la clase BroadcastReceiver registro de la Intención.ACTION_USER_PRESENT, ya que la adición de sólo en el Manifiesto no estaba haciendo nada. Gracias!

Dejar respuesta

Please enter your comment!
Please enter your name here