Erreur: On dirait que l'application n'a pas la permission d'accéder à l'emplacement. Ajoutez la ligne suivante au fichier AndroidManifest.xml de votre application
Même si j'ai ajouté les autorisations dans le fichier manifest.xml et demandé des autorisations d'exécution, je ne peux pas accéder au GPS.
Mon AndroidManifest.xml
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.location">
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />
<uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION" />
.....
.....
code complet:
import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View,
PermissionsAndroid } from 'react-native';
export default class App extends Component {
async requestLocationPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Location Access Permission',
'message': 'Expensify would like to use your location ' +
'so you we track you.'
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("You can use the location")
} else {
console.log("Location permission denied")
}
} catch (err) {
console.warn(err)
}
}
componentDidMount() {
console.log("compdidmount");
this.requestLocationPermission();
//Crashes here on getCurrentPosition
navigator.geolocation.getCurrentPosition(
(position) => {
console.log(position.coords.latitude);
},
(error) => {
console.log(error)
},
{enableHighAccuracy: true, timeout: 20000, maximumAge: 10000}
);
}
render() {
return (
<View style>
<Text style>
Tracking App
</Text>
</View>
);
}
}
J'ai résolu ce problème en en supprimant et en réinstallant l'application.
J'ai eu le même problème avec le CameraRoll
. J'ai corrigé cette demande d'autorisation au démarrage de l'application. Vous devriez utiliser ceci:
import { PermissionsAndroid } from 'react-native';
async function requestCameraPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Location Permission',
'message': 'Location Permission' +
'so you can use GPS location.'
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("You can use GPS")
} else {
console.log("GPS location denied")
}
} catch (err) {
console.warn(err)
}
}