Comment puis-je créer une activité visible en haut de l'écran de verrouillage

Je reçois une notification C2DM entrante alors que l'écran est verrouillé. J'aimerais réveiller l'écran et afficher le message de notification en haut de l'écran de verrouillage à l'aide d'une activité. Je lance l'activité de notification de mon C2DM BroadcastReceiver comme suit:

Intent new_intent= new Intent().setClass( context, EIAlertDialog.class ); new_intent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP ); new_intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); context.startActivity( new_intent ); 

Et dans la méthode OnCreate de l'activité de notification, j'ouvre l'écran comme suit:

  • TabLayout manquant après la mise à jour de la bibliothèque de support de conception
  • Android obtient un type de vue
  • Comment créer un objet JSON en utilisant String?
  • Connexion adb sur tcp ne fonctionne plus maintenant
  • Comment l'application Android SuperUser détecte-t-elle qu'une application demande la racine?
  • Animation Android - Flip
  •  PowerManager powerManager= (PowerManager)getSystemService( Context.POWER_SERVICE ); if (!powerManager.isScreenOn()) { mWakeLock= powerManager.newWakeLock( PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "My Tag" ) mWakeLock.acquire(); } 

    L'écran est réveillé, mais l'Activité de notification n'est pas visible jusqu'à ce que je déverrouille l'écran.

    Je me rends compte que je peux éviter l'écran de verrouillage avec le code ci-dessous, mais cela n'est pas souhaité. Je veux que l'utilisateur déverrouille le téléphone, seulement s'il s'intéresse à la lecture / à la réponse à la notification.

     getWindow().addFlags( WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON ); 

  • Vous ne pouvez pas obtenir des valeurs de EditText de Listview?
  • Limite de taux Dépassé erreur lorsque vous utilisez Google Cloud Messaging API
  • Comment changer la position d'un marqueur sur une carte Android v2
  • Est-ce que Notification.Builder setTicker est toujours utile dans Android 5 ou plus?
  • Comment puis-je inclure un bouton dans une notification Toast?
  • Tirage de la toile Android tirezTextrez-vous la taille de la police de la largeur?
  • 3 Solutions collect form web for “Comment puis-je créer une activité visible en haut de l'écran de verrouillage”

    Ce n'est pas possible autant que je le sais. Il semble que vous essayez de reproduire les expériences iOS. Vous devriez vous rendre compte que Android a ses propres conventions et les violer n'est pas quelque chose que vous devriez faire à la légère.

    L'Android est un peu contradictoire. C'est très ouvert et, en tant que développeur, vous avez accès à tout, et c'est à vous d'utiliser ces pouvoirs pour le bien ou le mal. Quand je dis mal, je ne parle pas de logiciels malveillants. Je veux dire des applications qui essayent de devenir mignonnes et utilisent les choses comme elles n'étaient pas destinées à être utilisées, comme la mise en place de notifications vous demandant d'utiliser l'application plus. La contradiction est que vous n'avez pas vraiment accès à tout, il y a quelques parties que les développeurs ont décidé étaient si importantes que l'application ne pouvait pas faire problème avec eux. L'écran de verrouillage est l'une de ces pièces. Vous pouvez remplacer votre application domestique tout ce que vous voulez, mais vous ne devez jamais vous soucier de l'échec de votre écran de verrouillage de remplacement et vous empêcher d'accéder à votre téléphone.

    Même si cela était possible, vous auriez plus de problèmes à résoudre. Chaque écran de verrouillage est différent, les fabricants peuvent et le personnaliser afin que vous n'ayez aucune garantie que votre activité n'empêchera pas le déverrouillage du téléphone.

    Utilise les drapeaux est le bon moyen de le faire, l'utilisation du gestionnaire d'alimentation est incorrecte.

    Vos demandes me semblent contradictoires: vous dites que vous souhaitez que l'activité apparaisse en haut de l'écran de verrouillage (en fait, nous ne faisons pas cela, nous cachons l'écran de verrouillage pour que l'activité puisse être vue), alors que vous êtes en même temps que vous Voulez que l'utilisateur commence à débloquer le périphérique.

    Si vous pensez que vous voulez que l'utilisateur voie une notification avant de débloquer l'appareil pour voir votre activité … Je pense vraiment que vous ne voulez pas cela. La notification est très petite (dans la barre d'état en haut), et la prochaine qui s'affiche lors de la publication est très transitoire. Ce ne sera pas une bonne expérience pour quelqu'un qui a entendu son bip sonore ou son buzz et le retire pour voir ce qui se passe.

    Vous devez utiliser n'importe quelle combinaison des indicateurs de fenêtre qui ont un sens pour votre application. Vous pouvez obtenir à peu près tout comportement raisonnable entre les différentes combinaisons d'entre eux. Ceux-ci sont utilisés pour le réveil, l'IU des appels entrants, etc.

    Essayez ceci dans votre activité

     PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); boolean screenOn = pm.isScreenOn();//check id screen is on if(!screenOn){//if not turn it on or wkaeup the screen final PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "Screen On"); wl.acquire(); Toast.makeText(getBaseContext(), "This is WAKEUP SCREEN", Toast.LENGTH_SHORT).show(); Thread timer = new Thread(){ public void run(){ try { sleep(5000); } catch (InterruptedException e) { // TODO: handle exception }finally{ wl.release();// release wakelock important } } }; timer.start(); } getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);//keep the activity running under lock screen.. 

    J'espère que cela t'aides

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.