Question

J'ai une activité pour capturer l'intention de ACTION_CALL via intent-filter et route via mon application qui fonctionne bien sur les appareils Nexus one, Moto Blur et Samsung .Mais pas sur HTC sense. :(

Le Intent.ACTION_CALL_BUTTON est appelé lorsque le bouton HTC sense est enfoncé, mais lorsque vous avez composé le ACTION_CALL n'est pas reçu, la sortie du journal indique que le android.intent.action.CALL est envoyé.

06-17 12:22:45.173: INFO/ActivityManager(83): Starting activity: Intent {
act=android.intent.action.CALL dat=tel:00390642200001 flg=0x10000000 
cmp=com.android.phone/.InCallScreen (has extras) }

Je suppose que c'est parce que HTC a mis son propre composeur sensoriel et qu'il fait quelque chose de drôle (peut-être avec la priorité du filtre d'intention?).

Mise à jour1: tentative de définition de la priorité sur la valeur int max, aucun changement.

<intent-filter android:priority="2147483647">
    <action android:name="android.intent.action.MAIN"  />
    <action android:name="android.intent.action.CALL"  />
    <category android:name="android.intent.category.DEFAULT" />     
</intent-filter>
Était-ce utile?

La solution

Vous pouvez surprendre mais vous avez raison. J'ai fait tellement d'expériences sur ce sujet sur HTC Desire et j'ai constaté que HTC a apporté un changement de changements dans le gestionnaire de paquets ou ajouté des wrire autour de cela, de sorte que chaque fois que nous ajoutons une activité qui a une action d'action, il n'est pas ajouté avec l'appel d'action. Ils ne le font que pour l'action d'appel non pour le cadran. Pour découvrir cela, j'ai fait des expériences comme:

1. Création d'une application enregistrée auprès d'Action Dial. Donc, chaque fois qu'il y a un appel à __action_dial__ activité intention, HTC affiche deux options une pour composer sa propre activité et une autre est une activité de minière. Une autre façon de tester le cadran est d'accéder à l'historique des appels dans HTC Phone et de sélectionner n'importe quel numéro de téléphone ou contact et sélectionnez ** Numéro d'édition avant d'appeler **. Cela affichera également deux options pour en choisir un. 2. Depuis qu'ils désactivent la fonctionnalité d'appel de manière programmable, toutes les autres manières d'appel sont effectuées par interaction avec UI de HTC. J'ai donc trouvé une autre façon d'appeler de manière programmative et qui est utilisée dans mon fichier manifeste. Mais cette fois encore en raison de leurs changements, je ne suis pas capable de gérer directement l'action des appels, mais une autre façon de gérer l'appel est lorsque l'Android recherche action_call_priviled . Et heureusement, j'ai trouvé ça. Allez simplement à Personnes -> Voir contact . Ensuite, il montre la possibilité d'appeler. Dans HTC DÉSIRE, il y a appelez mobile . Alors appuyez sur cette option et maintenez cette option.

Bamm .. Cette fois HTC montre la possibilité de sélectionner une option à appeler. L'une est sa propre et une autre est bien sûr la mienne.

La conclusion finale est que vous ne pouvez pas gérer l'appel, mais appeler_priviviled dans certains cas seulement. Pour vous assurer que vous utilisez Skype application sur votre HTC et allez sur personnes -> Voir contact , puis maintenez appelez mobile / home alors cela affiche également la boîte de dialogue pour choisir le gestionnaire pour appeler.

Autres conseils

Cela devrait fonctionner pour vous

<activity>
  <intent-filter>
    <action android:name="android.intent.action.CALL_PRIVILEGED" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="vnd.android.cursor.item/phone" />
    <data android:mimeType="vnd.android.cursor.item/phone_v2" />
    <data android:mimeType="vnd.android.cursor.item/person" />
  </intent-filter>
</activity>

pour les détails du mode, lisez ici

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top