6
votes

Existe-t-il un moyen de dire si votre application est utilisée pendant que l'utilisateur est au téléphone?

Il existe certaines parties de mon application qui seraient mieux à mettre en évidence à l'utilisateur si elles sont au téléphone.

Y a-t-il un appel à vérifier si nous sommes au téléphone? Malheureusement, "appel" est un mot horrible à vérifier dans les documents d'API pour des raisons évidentes.


2 commentaires

Voici le scénario. Bob reçoit un appel de Jill. Bob n'utilise pas ma demande lorsque l'appel se produit. Jill demande des informations de Bob stockées dans mon application. Bob, tandis que sur le téléphone, pousse le bouton de la maison, puis exécute mon application. À ce stade, je souhaite détecter que BOB parle au téléphone ou si BOB ne fait qu'exécuter l'application sans le téléphone. Je me fiche des appels téléphoniques entrant pendant que l'application est en cours d'exécution


De grandes questions. J'aimerais savoir aussi.


4 Réponses :


0
votes

Lorsque l'iPhone reçoit un appel, l'application quitte. Vous pouvez enregistrer un rappel pour gérer cet événement gracieusement, voir:

http://developer.apple.com/iphone/library/documentation/UIKIT/Reference/uiapplicationdelegate_protocol/referfere_reference.html#//apple_ref/occ/intfm/uiapplicationDelegate/applicationWillterminate : < / p>

Une fois l'appel terminé, votre demande sera relancée.

Les applications qui semblent conserver votre état pendant un appel sont bien écrites :)


argh! Je viens de lire votre question actuelle.

Je ne trouve pas, je ne connais pas d'API d'accès à l'application téléphonique. Mon seul conseil serait que le téléphone est une application comme une autre - et elle peut publier des informations via le tunnel HTTP toutes les applications fournies.

Je me demande si vous pouvez simplement avoir un bouton "Je suis sur le téléphone", l'utilisateur pourrait appuyer pour obtenir les mêmes résultats?


0 commentaires


5
votes

Regardez la différence de taille entre [[UISREEN Mainscreen] limites] et [[UISREEN Mainscreen] ApplicationFrame] . Si le diff est de 20 pixels et que vous ne cachez pas la barre d'état, les utilisateurs ne sont probablement pas sur un appel. Si la différence est de 40 pixels, vos utilisateurs sont probablement sur un appel, car la barre d'état vert rougeoyante qui apparaît pendant les appels est d'environ deux fois plus grande que la barre d'état normale.

Je n'ai pas fait cela auparavant, alors ymmv. Bonne chance et laissez-moi savoir si cela fonctionne!


1 commentaires

J'ai pensé que c'est la réponse, mais l'attache fait la même chose ...: O (



2
votes

Le framework coretelephony peut vous dire.

La méthode CTCallCenter CourourneCalls renvoie un ensemble d'appels cellulaires actuellement actifs.


0 commentaires