我正在使用带有Expo的React Native构建一个应用程序,此处提供的文档:https://docs.expo.io/versions/latest/sdest/sdk/location.html
我在文档中使用了代码示例,我应该获取位置权限访问提示,并在授予时,应在设备上自动启用位置服务以获取当前位置。
在我的Android S6 Edge测试设备上,我只会得到提示,当我按允许时,我会警告一下未启用位置服务。
所以有办法可以编程启用位置服务?
这是我的代码:
constructor(props) {
super(props);
this.state = {
location: false,
};
}
componentDidMount() {
this.askForUserPermissionToGetCurrentLocation();
}
async askForUserPermissionToGetCurrentLocation() {
// Ask for user's permission to access location settings
let { status } = await
Expo.Permissions.askAsync(Expo.Permissions.LOCATION);
console.log(status);
// User denied access
if (status !== "granted") {
console.log("denied");
// Otherwise, access granted
} else {
console.log("permission granted");
// Get the location
let location = await Expo.Location.getCurrentPositionAsync({});
console.log(location);
this.setState({ location: location });
}
}
渲染方法只是显示返回位置的经度和纬度的文本。
您可以在更新用户的位置时使用方法Expo.Location.watchPositionAsync(options, callback)
进行回调。