74 votes

Widget écran de verrouillage Android

Quelques utilisateurs m'ont demandé des widgets d'écran de verrouillage Android pour mon application - je crois qu'ils veulent un widget qui reste sur leur écran de verrouillage et leur permet d'interagir avec l'application.

Je n'ai pas pu trouver de documentation officielle à ce sujet - la seule chose que j'ai trouvée, ce sont des applications qui prennent les widgets de l'écran d'accueil et les mettent sur l'écran de verrouillage pour vous.

Avez-vous une idée de l'endroit où je peux en apprendre davantage sur la création de véritables widgets pour l'écran de verrouillage ?

54voto

Kevin TeslaCoil Points 4273

L'interaction avec l'écran de verrouillage est difficile. Android permet des opérations de base avec deux drapeaux de fenêtre (FLAG_SHOW_WHEN_LOCKED et FLAG_DISMISS_KEYGUARD). FLAG_SHOW_WHEN_LOCKED fonctionne de manière assez cohérente en ce sens qu'il s'affiche en haut de l'écran de verrouillage même lorsque la sécurité est activée (la sécurité n'est pas contournée, vous ne pouvez pas passer à une autre fenêtre non FLAG_SHOW_WHEN_LOCKED).

Si vous ne faites que quelque chose de temporaire, par exemple pendant que vous écoutez de la musique ou autre, tout ira probablement bien. Si vous essayez de créer un écran de verrouillage personnalisé, il existe de nombreuses interactions inhabituelles sur les différentes plateformes Android. ("Au secours ! Je ne peux pas éteindre mon alarme sans redémarrer mon téléphone HTC").

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

http://developer.Android.com/reference/Android/view/WindowManager.LayoutParams.html

FLAG_SHOW_WHEN_LOCKED
Window flag: special flag to let windows be shown when the screen is locked.

FLAG_DISMISS_KEYGUARD

Drapeau de fenêtre : lorsqu'il est activé, la fenêtre entraîne le renvoi du garde-clef. seulement s'il ne s'agit pas d'un garde-clef à verrouillage sécurisé. verrouillé. Parce qu'un tel garde-clef n'est pas nécessaire pour la sécurité, il ne jamais réapparaître si l'utilisateur navigue vers une autre fenêtre (contrairement à FLAG_SHOW_WHEN_LOCKED, qui ne fait que masquer temporairement les garde-clefs sécurisés et non sécurisées et non sécurisées, mais qui s'assure qu'elles réapparaissent lorsque l'utilisateur passe à une autre interface utilisateur qui ne les cache pas). Si le protège-clavier est actuellement actif et est sécurisé (nécessite un motif de déverrouillage) l'utilisateur devra toujours le confirmer le confirmer avant de voir cette fenêtre, à moins que FLAG_SHOW_WHEN_LOCKED n'ait également été activé. été activé. Valeur constante : 4194304 (0x00400000)

28voto

Bao Le Points 1468

Le document officiel sur le widget de l'écran de verrouillage est aquí

10voto

user640378 Points 531

Je devais mettre en place un widget d'écran de verrouillage pour mon projet. Au cours de ce processus, j'ai accumulé quelques ressources.

  1. Si vous avez une application que vous voulez mettre sur l'écran de verrouillage, commencez par en faire un appwidget . Vous pouvez utiliser le AppWidget pour ce faire.
  2. Maintenant, utilisez le AppWidgetHost de l'API Android à faites de votre écran de verrouillage un hôte pour les widgets. Je ne sais pas comment faire cette partie, mais il y a quelques implémentations existantes comme mylockandroid (liens ci-dessous).

Ressources

http://code.google.com/p/mylockforandroid/ (NB Ce code est pour les anciennes versions d'Android. Android 4.2 et plus a un support intégré pour les widgets d'écran de verrouillage)

http://mylockandroid.blogspot.com/2010/03/widget-lockscreen-beta-11-r2.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X