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)