Aller au contenu

Comment accéder à la BDD des alarmes sur HTC Hero ?


Recommended Posts

Salut,

Pour info j'ai également posé la question sur XDA, sait-on jamais... http://forum.xda-developers.com/showthread.php?p=6185918

Voilà, pour mon projet de "réveil lumière" j'ai besoin de récupérer la prochaine alarme de l'utilisateur, afin de démarrer le réveil en douceur par exemple 45 minutes avant l'alarme réelle.

Je n'ai pas besoin de modifier les alarmes, mais vraiment uniquement de les lire (et je tiens à me baser sur l'alarme déjà utilisée par l'utilisateur, mon appli ne vient pas pour remplacer, mais pour compléter le réveil habituel). Pour ça j'ai besoin de l'URI d'un Content Provider, qui en l'occurrence est "content://com.android.alarmclock/alarm" pour l'application standard. Mais évidemment, le réveil du HTC Hero ne peut être accédé de cette manière :(

mContentResolver.query("content://com.android.alarmclock/alarm", null, "enabled=?", new String[] { "1" }, null);

me renvoie systématiquement null (alors que ça marche parfaitement sur l'émulateur).

J'ai vérifié les bases de données des applications présentes, et j'ai trouvé une application nommée "com.htc.android.worldclock", avec un "alarms.db" qui est EXACTEMENT ce dont j'ai besoin, sauf que je ne sais comment la lire :(

J'ai testé "content://com.htc.android.worldclock/alarm" et "content://com.htc.android.worldclock/alarms", mais rien n'y fait...

Comment puis-je accéder à cette BDD ?

Est-ce qu'il existe un moyen de connaître l'URI du Content Provider fourni par une application pour accéder à ses données ?

Est-ce qu'il existe un moyen simple dans l'API pour connaître l'URL du Content Provider des alarmes (s'il existe) ?

Merci d'avance :)

P.S: si jamais j'arrive à résoudre ce problème, il m'en restera un autre à résoudre : comment reconnaître le device de l'utilisateur pour utiliser le bon content provider ? Ou est-ce que je devrais plutôt tester tous les content provider que j'ai trouvés et garder le premier qui marche ?

Lien vers le commentaire
Partager sur d’autres sites

La réponse est venue d'XDA :) Il faut utiliser "content://com.htc.android.alarmclock/alarm" pour l'horloge HTC Sense.

Je vais donc gérer ces deux là en testant les accès au provider, et en cas d'erreur afficher une popup demander de spécifier l'heure du réveil (stocké en préférence). Et puis j'ajouterai aussi une option pour le re-définir manuellement dans le menu (au cas où on ait une alarme d'origine mais qu'on en utilise une autre par exemple).

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...