11
votes

Comment utiliser l'intention action user_present?

J'ai une application de widget d'horloge et j'ai besoin de reconnaître lorsque le téléphone a été déverrouillé ou non, je pense que je peux utiliser action user_present pour cela, mais je ne peux pas l'obtenir de lancer dans la classe BroadcastEiver, j'ai défini C'est dans le manifeste comme celui-ci:

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());          
        }
    }

}


3 commentaires

La liaison de flux de pile ci-dessous devrait probablement vous aider: Stackoverflow.com/Questtions/3446202/...


J'ai essayé votre code et j'ai trouvé ça marche bien. Il peut recevoir action_user_present lorsque l'application est activée. Mais lorsque quelqu'un tue votre processus en arrière-plan, il faut 1 ou plus secondes pour redémarrer votre processus de diffusion. Et dans cet intervalle, il ne peut pas recevoir d'action_user_present. J'espère que ça aide.


Pourriez-vous poster tout le code? J'ai vu des exemples où ils utilisent registerrecefeiver et joignez-y et joignez-la de l'intention, mais dans mon code, je défini juste les filtres dans le manifeste, où j'ai comme 4 Les actions, toutes fonctionnent, mais elles sont définies par moi, pas des actions système, avec celui-ci, je ne peux pas le faire fonctionner.


3 Réponses :


2
votes

Je l'ai eu pour travailler en utilisant registerRecefeiver dans la méthode ONUPDATE de la classe APPWIDGETProvider et en faisant passer une instance de la classe BroadCastraSiver pour enregistrer l'intention.Action_User_present, car ne l'ajoute que dans le manifeste n'était pas faire quelque chose. Merci!


0 commentaires

4
votes

Suppression Android: Exporté = "FALSE" . Cela a fonctionné pour moi en stock Android 5


0 commentaires

4
votes

Suppression Android: Exporté = "FALSE"

Android: Exporté:

Si le récepteur de diffusion peut ou non recevoir des messages provenant de sources extérieures à son application - "VRAI" si cela peut, et "Faux" sinon. Si "False", les seuls messages que le récepteur de diffusion peut recevoir sont ceux envoyés par des composants de la même application ou des mêmes applications avec le même identifiant utilisateur.

Source: développeur.android.com


0 commentaires