gpt4 book ai didi

android - 删除 Android 上的后台位置访问权限

转载 作者:行者123 更新时间:2023-12-03 16:10:06 26 4
gpt4 key购买 nike

我正在使用 react-native-geolocation-service获取用户的位置。在 iOS 上,当应用程序在前台时很容易请求位置访问,您只需跳过添加后台位置访问作为一项功能。但是,我不明白您如何在 Android 上删除此权限。我没有 ACCESS_BACKGROUND_LOCATION权限集,我仍然可以在例如“始终允许”选项。我的像素 2。
这是我用来获取用户位置的代码:

const getCurrentPosition = async (onSuccess, onError) => {
if (Platform.OS === 'android') {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
title: 'My title',
message: 'My message',
buttonPositive: 'Continue',
}
);
if (granted !== PermissionsAndroid.RESULTS.GRANTED) {
onError();
return;
}
}
Geolocation.getCurrentPosition(
(result) => {
const position = {
longitude: result.coords.longitude,
latitude: result.coords.latitude,
};
onSuccess(position);
},
(error) => {
onError();
},
{ enableHighAccuracy: true, maximumAge: 10000, timeout: 15000 }
);
};

最佳答案

查看您的主要 AndroidManifest.xml文件(我的主要意思是在 android/app/src/main(COULD_BE_SOMETHING_ELSE_USUALLY_MAIN_BUT_YMMV)/AndroidManifest.xml 下)
你需要找一堆<uses-permission /> .检查这些坏男孩之一是否获得了 ACCESS_BACKGROUND_LOCATION:

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
没运气?不要害怕,我亲爱的 friend 。这里有一个补救办法,可以解决你因与 react 原生的交易而疲惫不堪的头脑。在最后一个 <uses-permission> 下添加这一行标签。
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"
tools:node="remove" />
愿和平盛行。
技术细节:
实际上,一个库,如 react-native-geolocation-servicereact-native-background-geolocation , 可以更改最终 AndroidManifest.xml ,这将转到一个经过大量编辑的包。
简单地删除一行不会删减它,因为您无权访问该最终草稿,因为它是自动生成的。您需要领先一步并使用 tools:node="remove"以确保它将从 list 文件的最终版本中删除。
资料来源:
  • [1] https://developer.android.com/studio/build/manifest-merge
  • [2] https://github.com/transistorsoft/react-native-background-geolocation/issues/1149
  • 关于android - 删除 Android 上的后台位置访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64533925/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com