我是新创建的跟踪系统,在观看我的经纬度和长时间实时位置时遇到问题,为什么在几秒钟后我的GPS会关闭。我这里有一个例子,我看着我的手机,而GPS并没有关闭,这是一个抢车应用程序。如何在react-native中做到这一点?
以下是Grab出租车应用程序的示例。
现在我的应用程序看起来像这样,如您所见,GPS关闭了,我不知道为什么会这样,GPS仅在我的应用程序上运行一次,然后一秒钟后,我认为3到4秒钟,它将自动关闭。
有人在经历这些吗,您能帮我解决这个问题吗? 我将向大家展示我的示例代码。
我的状态:
this.state = {
initialPosition: {
latitude: 0,
longitude: 0,
latitudeDelta:0,
longitudeDelta:0
},
markerPosition: {
latitude:0,
longitude:0
}
}
我的组件安装:
componentDidMount () {
navigator.geolocation.getCurrentPosition((position) => {
var lat = parseFloat(position.coords.latitude);
var long = parseFloat(position.coords.longitude);
var initialRegion = {
latitude: lat,
longitude: long,
latitudeDelta: LATTITUDE_DELTA,
longitudeDelta: LONGTITUDE_DELTA
};
this.setState({ initialPosition: initialRegion });
this.setState({ markerPosition: initialRegion });
}
, (error) => alert(JSON.stringify(error)),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 2000 });
this.watchID = navigator.geolocation.watchPosition((position) => {
var lat = parseFloat(position.coords.latitude);
var long = parseFloat(position.coords.longitude);
var lastRegion = {
latitude: lat,
longitude: long,
latitudeDelta: LATTITUDE_DELTA,
longitudeDelta: LONGTITUDE_DELTA
};
this.setState({ initialPosition: lastRegion });
this.setState({ markerPosition: lastRegion });
});
}
componentWillUnmount () {
navigator.geolocation.clearWatch(this.watchID);
}
我在AndroidManifest.xml中的权限
<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"/>