Saltar al contenido

¿Cómo solicito permiso para la ubicación del dispositivo Android en React Native en tiempo de ejecución?

Solución:

Lo resolví cambiando el targetSdkVersion (lo mismo que compileSdkVersion, en mi caso 23) en android/app/build.gradle.

Edite AndroidManifest.xml ubicado en android / src / main y agregue el

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

Siguiente :

import { PermissionsAndroid } from 'react-native';

y luego agregue este método:

export async function requestLocationPermission() 
{
  try {
    const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
      {
        'title': 'Example App',
        'message': 'Example App access to your location '
      }
    )
    if (granted === PermissionsAndroid.RESULTS.GRANTED) {
      console.log("You can use the location")
      alert("You can use the location");
    } else {
      console.log("location permission denied")
      alert("Location permission denied");
    }
  } catch (err) {
    console.warn(err)
  }
}

y acceda al método cuando solicite la ubicación en tiempo de ejecución

async componentWillMount() {
    await requestLocationPermission()
}

Esto no funcionó para mí

if (granted === PermissionsAndroid.RESULTS.GRANTED) {
}

Me referí a https://facebook.github.io/react-native/docs/permissionsandroid.html#request y check () devuelve un booleano

const granted = await PermissionsAndroid.check( PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION );

if (granted) {
  console.log( "You can use the ACCESS_FINE_LOCATION" )
} 
else {
  console.log( "ACCESS_FINE_LOCATION permission denied" )
}

Puede usar el PermissionsAndroid nativo de reacción para solicitar el permiso: https://facebook.github.io/react-native/docs/permissionsandroid.html#request

O una opción más fácil será usar una biblioteca que lo haga por usted, como https://github.com/yonahforst/react-native-permissions

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *