早上好!

我已经使用Altbeacon有一段时间了,我喜欢它的安静背景模式.不幸的是,通过更新lib到最新版本,我注意到前台服务权限在Manifest中默认存在.

FOREGROUND_SERVICE_LOCATION

由于我在前台不使用lib,所以我宁愿在 list 中根本没有该权限,这将迫使我在store 上传应用程序时证明它的合理性.

我试过强制删除我的应用 list 中的权限,在不使用altbeacon的前台服务的情况下,它似乎工作得很好,但我知道这不是一种集成库的推荐方式.

我这样取消许可安全吗? 我错过了什么吗? 默认情况下,该权限不应该出现在 list 中,只有当用户需要时才添加?

谢谢你抽出时间

推荐答案

是的,如果您的应用程序不需要前台服务,可以安全地从AndroidManifest.xml中删除FOREMATION_SERVEE权限,这实际上是最新版本的Android Beacon Library的推荐方法.

<manifest ... xmlns:tools="http://schemas.android.com/tools">
    ...
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" tools:node="remove" />
    ...
</manifest>

必须这样做是公认的尴尬. 一些快速的历史记录:当Google开始要求前台服务的权限时,该权限被添加到库 list 中. 这样做是为了让开发人员更容易使用内置的前台服务. 当对库进行此更改时,Google并不要求提交到Google Playstore 的许可理由,因此没有实际的不利影响. 正如您指出的,新的理由要求改变了这一点,但是现在从库中删除权限对许多应用程序来说将是一个 destruct 性的改变,所以我不愿意在下一个主要的3.0版本之前这样做.

解决这个问题是讨论GitHub上开源仓库问题的一个很好的主题. 欢迎任何 idea .

完全披露:我是Android Beacon Library开源项目的首席开发人员.

Kotlin相关问答推荐

Jetpack Compose中的数字 Select 器问题

在Kotlin中求n个ClosedRange实例相交的最常用方法是什么?

在Jetpack Compose中创建波浪式文本动画:顺序中断问题

在Kotlin中,我是否可以访问已知的WHEN子句值?

Java/Kotlin中类似Rust般的注释编译?

Ktor 在 Heroku 上的 CORS 问题,但在本地没有

为什么这两个 Kotlin 协程函数不一样?

协程子作业(job)取消

按钮无法在 Android Studio 上打开新活动

如何将glide显示的图像下载到设备存储中.Kotlin

KMM:编译失败:意外的 IrType 类型:KIND_NOT_SET

关于 Kotlin 函数类型转换的问题

将子元素放在一个列表中

如何在 Kotlin for Android 上使用setTextColor(hexaValue),

Kotlin 是如何编译的?

无法在 kotlin android 中以编程方式禁用 EditText

Kotlin-将UTC转换为当地时间

Kotlin类型安全类型别名

你如何在 Kotlin 中注释 Pair 参数?

目前不支持 Gradle 项目的自动库版本更新.请手动更新您的 build.gradle