Android.permission.CALL_PHONE para tabletas

Estoy desarrollando una aplicación y en el manifiesto tengo:

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> 

Cuando hago clic en el botón para ejecutar este código:

 Intent intentcall = new Intent(); intentcall.setAction(Intent.ACTION_CALL); intentcall.setData(Uri.parse("tel:" + phonenumber)); // set the Uri startActivity(intentcall); 

Funcionará bien en los teléfonos y en las tabletas aparecerá con una pantalla donde podrá ver o agregar el número a los contactos. Sin embargo, si conservo el permiso en el manifiesto, no está disponible para tablets en el mercado. ¿Cómo puedo mantener el comportamiento del código y todavía tenerlo en el mercado para tablets y teléfonos?

En cuanto a "usos-característica" y se estrelló – ¿está comprobando que la telefonía está disponible antes de hacer la llamada? Podría ser que usted necesita para hacer ese paso extra para el caso cuando la aplicación está en tabletas. Todo lo que está diciendo en el manifiesto es que la característica no es necesaria. Probablemente se basa en que realmente implementar la lógica en torno a eso.

En el AndroidManifest necesitas:

 <uses-feature android:name="android.hardware.telephony" android:required="false" /> 

El permiso CALL_PHONE implica que la telefonía es obligatoria, pero si especifica que no es, no se filtrará.

Intente utilizar Intent.ACTION_DIAL en lugar de Intent.ACTION_CALL.

Por ejemplo:

 try { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phone_number)); startActivity(intent); } catch (Exception e) { //TODO smth } 

Y en este caso puede quitar completamente estas etiquetas de AndroidManifest.xml:

 <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-feature android:name="android.hardware.telephony" android:required="false" /> 

En lugar de agregar un usuario con el identificador ACTION_CALL , cámbielo a ACTION_INSERT_OR_EDIT .

También necesitarás estos permisos en lugar del permiso CALL_PHONE :

 <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> <uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission> 

Echa un vistazo a esta pregunta relacionada:

No puede encontrar la aplicación en el mercado

De google docs:

Los elementos declarados son sólo informativos, lo que significa que el propio sistema Android no comprueba si hay compatibilidad de características coincidentes en el dispositivo antes de instalar una aplicación

El uso es solo para google play

  • Períodos de ejecución de Android en las mejores prácticas de Android 6.0 (nivel de API 23)
  • Detección de la superposición de pantalla: cómo manejar esto en una aplicación de superposición de pantalla
  • Android permission.INTERACT_ACROSS_USERS_FULL
  • Permiso personalizado para la aplicación
  • Permisos que no funcionan
  • Proveedor de contenido grant uri permission
  • Error al abrir archivo de seguimiento: Permiso denegado (13)
  • ¿Por qué mi aplicación solicita permiso de identificación de teléfono?
  • Cómo conceder permisos de sistema a mi aplicación android?
  • No se puede eliminar directorio form / storage / sdcard0
  • Android 2.3: Sistema de archivos de sólo lectura pegado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.