2

我正在尝试通过运行以下代码段来获取当前地理位置,

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

我应该改进我的代码以使其在移动设备中运行?

4

0 回答 0