Xamarin Forms Android端如何禁止应用启动时自动申请位置权限
问题原因排查与解决方案
你提供的MainActivity代码中没有主动调用定位权限申请的逻辑,权限申请触发源来自LoadApplication(new App())执行后加载的Xamarin.Forms公共层代码:
- 首先检查Xamarin.Forms项目下的
App.xaml.cs构造函数、默认启动页面的OnAppearing生命周期方法,是否存在调用定位接口、请求定位权限的逻辑,直接将这部分逻辑迁移到隐私声明弹窗的「获取位置」按钮点击事件中即可解决提前弹窗的问题。 - 如果你使用了第三方定位、权限管理类的封装库,检查是否有默认启动即申请权限的配置项,关闭自动申请配置即可。
额外优化建议
- 如果你当前应用没有后台定位的需求,建议删除Manifest中的
android.permission.ACCESS_BACKGROUND_LOCATION权限声明,Android 11及以上系统对后台位置权限的申请有严格审核规则,非必要保留会增加用户拒绝权限的概率,也不符合应用商店的上架规范。 - Manifest中定位相关的
uses-feature节点当前配置为android:required="true",如果你的应用存在无需定位也可正常使用的功能,建议修改为android:required="false",避免应用在无定位硬件的设备上无法安装。
内容的提问来源于stack exchange,提问作者Stalo Hadjitofi
相关产品推荐
相关产品推荐

