web-dev-qa-db-fra.com

Android

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

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

Des indices sur où j'apprends plus sur la construction de vrais widgets d'écran de verrouillage?

72
psychotik

L'interaction de l'écran de verrouillage est difficile. Android autorise les opérations de base avec deux indicateurs 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'affichera au-dessus 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 faites juste quelque chose de temporaire, comme pendant la lecture de musique ou similaire, vous serez probablement d'accord. Si vous essayez de créer un écran de verrouillage personnalisé, il y a beaucoup d'interactions inhabituelles sur toutes les différentes plates-formes Android. ("Aide! Je ne peux pas désactiver mon alarme sans redémarrer mon HTC) téléphone").

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

Indicateur de fenêtre: indicateur spécial permettant d'afficher les fenêtres lorsque l'écran est verrouillé.

FLAG_DISMISS_KEYGUARD

Indicateur de fenêtre: lorsqu'elle est définie, la fenêtre entraînera le verrouillage du clavier, uniquement s'il ne s'agit pas d'un verrouillage sécurisé. Étant donné qu'un tel garde-clé n'est pas nécessaire pour la sécurité, il ne réapparaîtra jamais si l'utilisateur navigue vers une autre fenêtre (contrairement à FLAG_SHOW_WHEN_LOCKED, qui ne masquera que temporairement les gardes-clés sécurisés et non sécurisés, mais s'assurera qu'ils réapparaissent lorsque l'utilisateur passe à une autre interface utilisateur qui ne les cache pas). Si le clavier est actuellement actif et sécurisé (nécessite un schéma de déverrouillage), l'utilisateur devra toujours le confirmer avant de voir cette fenêtre, sauf si FLAG_SHOW_WHEN_LOCKED a également été défini. Valeur constante: 4194304 (0x00400000)

54
Kevin TeslaCoil

Le document officiel du widget de l'écran de verrouillage est ici

28
Bao Le

J'ai dû implémenter un widget écran de verrouillage pour mon projet. Dans le processus, j'ai accumulé quelques ressources.

  1. Si vous avez une application que vous souhaitez mettre sur l'écran de verrouillage, commencez par en faire un widget d'application . Vous pouvez utiliser la classe AppWidget pour ce faire.
  2. Maintenant, utilisez la classe AppWidgetHost de Android API pour faire de votre écran de verrouillage un hôte pour les widgets. Je ne sais pas comment faire cette partie, mais il existe des 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 intégré un widget lockscreen) soutien)

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

10
mauryat