Interception de l'intention ACTION_CALL sur HTC sense
-
29-10-2019 - |
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>
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
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
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>