Xamarin, Xamarin.Forms

Error { “revoked permission android.permission.CALL_PHONE} #Xamari.Forms #Xamarin.Android


Cuando estamos trabajando en Xamarin.Forms tenemos que llegar a la parte nativa de cada plataforma, a la cual se les debe de brindar los permisos necesarios para cumplir con determinadas funciones, en este ejemplo, la de poder realizar una llamada en Android:

AndroidManifest–

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

En donde se podia tener el siguiente código para


var intent = new Intent(Intent.ActionCall);
      intent.SetData(Uri.Parse("tel:" + number));

      if (IsIntentAvailable(context, intent))
      {
        context.StartActivity(intent);
        return true;
      }

Pero al ejecutar y estar trabajando en un dispositivo físico con el SDK 23, aparece la siguiente excepción:

Screen Shot 2017-09-05 at 1

¿Que es lo que sucede?
Android 6 (SDK 23) permite a los usuarios revocar permisos de una aplicación, así que debemos de poder ser capaces de hacer frente a esta situación, para esto, en android 6.0 (Api lvl 23) tenemos algo llamado “Runtime Permissions”.

Si el dispositivo está ejecutando Android 6.0 o superior y el SDK de destino de la aplicación es 23 o superior: La aplicación debe enumerar los permisos en el manifiesto y debe solicitar cada permiso peligroso que necesita mientras se ejecuta la aplicación. El usuario puede conceder o denegar cada permiso, y la aplicación puede seguir ejecutándose con capacidades limitadas incluso si el usuario niega una solicitud de permiso.

En este caso , lo único que debemos de hacer es cambiar de ActionCall a ActionDial, puesto que esta ya que no necesita permiso para ejecutar la acción.


Intent.ActionDial

Por ultimo solo es necesario borrar las carpetas bin y obj de nuestro proyecto de Android, realizar un “Clean Solution” y volver a compilar.

Para mayor información les recomiendo le echen un vistazo a la documentación.

Espero esto les haya ayudado, y recuerden, cualquier duda o comentario relacionado al desarrollo de aplicaciones con Xamarin.Forms, usen el #DevXamBlack en Twitter.

Hasta la próxima!.

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s