Domanda

Ho un'attività da catturare ACTION_CALL intenzione via intent-filter e percorso tramite la mia app che funziona bene Nexus One, Moto Blur e Samsung Devices. Ma non su HTC Sense. :(

Il Intent.ACTION_CALL_BUTTON si chiama quando il HTC Sense il pulsante viene premuto ma quando hai composto ACTION_CALL non viene ricevuto l'output del registro mostra il android.intent.action.CALL è inviato.

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) }

Immagino che questo sia perché HTC ha messo il proprio dialer senso e sta facendo qualcosa di divertente (forse con la priorità del filtro intento?).

Aggiornato1: ho provato a impostare la priorità al valore INT MAX, nessuna modifica.

<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>
È stato utile?

Soluzione

Potresti sorprendere ma hai ragione. Ho fatto così tanti esperimenti su questo argomento su HTC Desire e ho scoperto che HTC ha apportato qualche modifica in Package Manager o aggiunto un po 'di mira attorno a quello, quindi ogni volta che aggiungiamo attività che ha una chiamata d'azione, non viene aggiunta con una chiamata d'azione. Lo fanno solo per l'azione chiamata non per il quadrante. Per scoprirlo ho fatto alcuni esperimenti come:

1. ha creato un'applicazione registrata con il quadrante Azione. Quindi, ogni volta che c'è una chiamata all'attività di intento __act_dial__, HTC visualizza due opzioni una per comporre la propria e l'altra è l'attività mineraria. Un altro modo per testare il quadrante è andare alla cronologia delle chiamate nel telefono HTC e selezionare qualsiasi numero di telefono o contattare e selezionare ** Numero di modifica prima di chiamare **. Questo visualizzerà anche due opzioni per sceglierne una.

2. Dal momento che disabilitano la funzione di chiamata programmaticamente, tutti gli altri modi di chiamare vengono eseguiti per interazione con l'interfaccia utente di HTC. Quindi ho trovato un altro modo di chiamare programmaticamente e questo è l'uso u003Caction android:name="android.intent.action.CALL_PRIVILEGED" /> Nel mio file manifest. Ma questa volta a causa delle loro modifiche non sono in grado di gestire direttamente l'azione di chiamata, ma un altro modo per gestire la chiamata è quando l'androide cerca Action_Call_Privileged. E per fortuna l'ho trovato. Vai a Le persone -> Contatto visivo. Quindi mostra l'opzione da chiamare. Nel desiderio HTC c'è Chiama il cellulare. Quindi premere e tenere conto di quell'opzione.

Bamm .. Questa volta HTC mostra l'opzione per selezionare un'opzione da chiamare. Uno è il suo e un altro è, ovviamente, il mio.

La conclusione finale è che non è possibile gestire la chiamata ma call_privileged solo in alcuni casi. Per assicurarti l'uso Skype Applicazione sul tuo HTC e vai a Le persone -> Contatto visivo e poi premere Chiama il cellulare/casa Quindi questo mostra anche la finestra di dialogo per scegliere il gestore per la chiamata.

Altri suggerimenti

Dovrebbe funzionare per te

<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>

Per i dettagli della modalità leggi lì

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top