Pregunta

Tengo una actividad para atrapar ACTION_CALL intención a través de intent-filter y ruta a través de mi aplicación que funciona bien en Nexus One, Moto Blur y Samsung Devices. Pero no en Sentido de htc. :(

los Intent.ACTION_CALL_BUTTON se llama cuando el Sentido de htc se presiona el botón pero cuando marcó ACTION_CALL no se recibe la salida de registro muestra el android.intent.action.CALL se ha enviado.

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

Supongo que esto se debe a que HTC ha puesto su propio marcador de sentido y está haciendo algo divertido (¿tal vez con prioridad de filtro de intención?).

Actualizado1: intenté configurar la prioridad en Max Int Value, sin cambios.

<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>
¿Fue útil?

Solución

Puedes sorprenderte pero tienes razón. He realizado tantos experimentos en este tema en HTC Desire y descubrí que HTC hizo algún cambio en el Administrador de paquetes o agregué algo de WRAper en eso, por lo que cada vez que agregamos actividad que tiene una llamada de acción, entonces no se agrega con la llamada de acción. Hacen esto solo para la acción de llamadas, no para Dial. Para descubrir esto, he hecho algunos experimentos como:

1. Creó una aplicación registrada con Action Dial. Entonces, cada vez que hay una llamada a la actividad de intención __Action_Dial__, HTC muestra dos opciones una para marcar la suya y otra es la actividad mía. Otra forma de probar el dial es ir al historial de llamadas en el teléfono HTC y seleccionar cualquier número de teléfono o contacto y seleccionar ** Número de edición antes de llamar **. Esto también mostrará dos opciones para elegir una.

2. Dado que deshabilitan la función de llamada por programada, todas las demás formas de llamar se realizan por interacción con la interfaz de usuario de HTC. Así que he encontrado otra forma de llamar programáticamente y eso es usar u003Caction android:name="android.intent.action.CALL_PRIVILEGED" /> en mi archivo manifiesto. Pero esta vez nuevamente debido a sus cambios, no puedo manejar la acción de la llamada directamente, pero otra forma de manejar la llamada es cuando el Android busca Action_call_privileged. Y afortunadamente lo encontré. Solo ve a Gente -> Ver contacto. Luego muestra la opción de llamar. En htc deseo hay Llamar móvil. Así que presione y mantenga presionado esa opción.

Bamm .. Esta vez HTC muestra la opción de seleccionar una opción para llamar. Uno es suyo y otro es, por supuesto, mío.

La conclusión final es que no puede manejar la llamada, pero Call_Privileged solo en algunos casos. Para asegurarse de usar skype Aplicación en su HTC y vaya a Gente -> Ver contacto y luego presionar y sostener Llame a Mobile/Inicio Luego, esto también muestra el diálogo para elegir el controlador para la llamada.

Otros consejos

Debería funcionar para ti

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

Para detalles del modo leído allí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top