Я хочу, чтобы значок GPS отображался в строке состояния при открытии приложения или экрана, содержащего карту, поэтому я добавляю функцию, которая запрашивает у пользователя в первый раз разрешение на доступ, и она работает очень хорошо, и я могу получить лат / Длинно, но значок GPS «Местоположение» не активирован, так как я могу заставить приложение активировать этот значок?
вот моя функция запроса разрешения
async requestLocationPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
title: 'App Location Permission',
message: 'App needs access to your Location ',
buttonNeutral: 'Ask Me Later',
buttonNegative: 'Cancel',
buttonPositive: 'OK',
},
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
this.getLocation();
} else {
this.setState({next: false});
}
} catch (err) {
console.log('err ', err);
}
}
getLocation = async () => {
const {companyLocation, Domain} = this.props.navigation.state.params;
Geolocation.getCurrentPosition(
position => {
this.setState(
{
mapData: {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.015,
longitudeDelta: 0.0121,
},
markerData: {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.015,
longitudeDelta: 0.0121,
},
error: null,
},
() => {
let {
latitudeDelta,
longitudeDelta,
...userLocation
} = this.state.mapData;
let howFar = Math.round(haversine(userLocation, companyLocation));
howFar > Domain
? (alert('we not work in your area.'),
this.setState({next: false}))
: null;
},
);
},
error => this.setState({error: error.message}),
);
this.watchID = Geolocation.watchPosition(position => {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
this.setState({
mapData: {
latitude: latitude,
longitude: longitude,
latitudeDelta: 0.015,
longitudeDelta: 0.0121,
},
});
});
};