问题
I want to appear GPS Icon on the status bar when I open app or screen that's contain Map, So I add a function that asks a user at the first time to allow Location permission and it's work very well and I can get Lat/Long but GPS "Location" Icon did not activate so how can I force an app to activate this icon?
here's my Ask for permission function
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,
},
});
});
};
来源:https://stackoverflow.com/questions/61361533/how-to-activate-gps-icon-in-react-native