android - 使用颤振位置插件在 Android 中自动添加后台位置权限
问题描述
我最近添加了 Flutter位置插件以允许我的应用程序使用 GPS。在 iOS 和 App Store 上一切都按预期工作,但是在为 Android 构建(targetSdkVersion 29 / API 级别 29)并上传到 Google Play 时,它告诉我存在后台位置权限。我可以通过查看构建
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
行被添加到 AndroidManifest.xml 文件中。
但是,我的应用程序没有在后台使用位置,我只是不知道如何删除位置插件自动添加的这个权限。
使用位置插件的唯一代码是我在方法中的这一行:
LocationData userLocation = await new Location().getLocation();
解决方案
权限由位置插件引入。如果你去它的清单,你会发现以下请求的权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
要删除它添加
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"
tools:node="remove"/>
到您的应用清单。
推荐阅读
- asp.net-mvc - 在 Visual Studio for Mac 的 MVC 项目中无法看到 App_data 文件夹
- encoding - ncurses 应用程序中的字符仅在 tmux 中正确显示
- node.js - TypeScript Joi:“根”类型上不存在属性“验证”
- java - 通过 CMD 的 Java 命令在 C#.NET 中不起作用
- mysql - SQLSTATE [HY000]:一般错误:1267 非法混合排序规则
- machine-learning - 如何告诉多类分类器 2 个类别密切相关,因此不应惩罚它们之间的错误分类?
- c++ - 如何将 void 函数传递给另一个 void 函数?
- php - yii2 如何计算日期之间的天数,不包括周末和节假日
- c - 在 C 中打印字符串时出现无法解释的行为
- cordova - 如何在 Capacitor 的应用内浏览器中打开所有链接?