2010-05-10 3 views
1

Android ne semble pas fournir un moyen pour un user application to change the system time. Ce que je voudrais faire, c'est que l'utilisateur change l'heure. Il est facile d'ouvrir la date & Paramètres de l'heure:Faire changer l'heure de l'utilisateur dans Android

startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS)); 

Ce que je voudrais savoir est:

  1. Est-il possible de relier directement à l'option de temps de jeu?
  2. Est-il possible de vérifier que l'utilisateur a correctement réglé l'heure? Je suis conscient du message TIME_CHANGED de diffusion, mais je ne peux trouver aucune documentation sur ce

Mise à jour:

Le message de diffusion TIME_CHANGED ne fournit aucune information sur la façon dont elle a changé. Ce n'est pas explicitement documenté, mais j'ai essayé getData et getExtras et n'ai reçu aucune information. En outre, en regardant le reste de la documentation, il semble qu'aucune donnée ou extras sont passés à moins d'être explicitement documentés. De même, il est en fait documented le ACTION_DATE_SETTINGS ne prend aucune entrée et il est implicite qu'il ne prend pas d'extras, il n'y a donc aucun moyen de le contrôler plus précisément.

CommonsWare a souligné ce qui aurait été évident pour moi - que la vérification simplement que l'utilisateur de définir le temps de la valeur récupérée à partir du serveur, sans se soucier du temps passé dans le menu des options, fonctionnera presque toujours. Comme cette hypothèse pourrait être fausse, si j'utilisais cette méthode, alors je ferais en sorte que le message indique que l'heure est probablement définie correctement ou incorrectement, plutôt que d'utiliser une instruction définie.

Cependant, j'ai découvert elapsedRealtime et donc je vais effectivement implémenter cette détection correctement.

Répondre

4

Est-il possible de lier directement à l'option de temps ?

Essayez:

startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS)); 

Est-il possible de vérifier que l'utilisateur régler correctement l'heure?

:: haussement ::

Après l'application prend le contrôle à nouveau, examinez le temps.

+0

J'ai déjà fourni cette intention dans la question. Je vous demandais si vous pouviez lier directement à l'option de réglage de l'heure, plutôt que simplement les paramètres généraux de l'heure et de la date. Un seul clic, mais quand même, j'aime le rendre aussi pratique que possible pour l'utilisateur. – Casebash

+0

Mais comment puis-je comptabiliser le temps que l'utilisateur passe dans l'application des paramètres de temps? Je ne peux pas utiliser l'horloge système, car l'utilisateur la change. Il ne sera généralement pas significatif, mais supposez qu'un ami les interrompt et ils finissent de régler le temps 15 minutes plus tard. Je sais que c'est un peu un cas stupide, mais une application ne devrait jamais dire que quelque chose est correct quand il ne l'est pas. – Casebash

+0

Désolé - ne faisait pas attention.Si le temps est plus important pour vous que pour l'utilisateur, vous ne devriez pas du tout compter sur l'utilisateur. Utilisez un client NTP et prenez le temps vous-même. J'ai l'impression de me souvenir de quelques articles sur la liste 'android-developers' concernant quelqu'un qui a eu un client NTP. – CommonsWare

Questions connexes