我正在尝试通过运行以下代码段来获取当前地理位置,
export default class LocationTracking extends Component {
constructor(props) {
super(props);
this.state = { latitude: '',
longitude: ''
};
}
componentWillMount() {
navigator.geolocation.getCurrentPosition(
function (position) {
this.setState({ latitude: position.coords.latitude,
longitude: position.coords.longitude
});
}.bind(this),
(error) => console.log(error.message),
{
enableHighAccuracy: true,
timeout: 5000
}
);
}
render() {
return (
<View >
<MapView
style={styles.container}
region={{
latitude: Number(this.state.latitude),
longitude: Number(this.state.longitude),
latitudeDelta: 5.12,
longitudeDelta: 5.032,
/>
</View>
);
}
}
我在 AndroidManifest.xml 中设置了如下权限,
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
但是它总是返回纬度:0,经度:0(我假设的默认位置)。相同的代码在模拟器中运行良好,但在我的 android 设备中运行良好。
设备名称:Huwai(荣耀4x) Android版本:6.0.1
我应该改进我的代码以使其在移动设备中运行?