当前位置: 首页 > 知识库问答 >
问题:

在未经用户许可的情况下打开Android LE扫描

昝光临
2023-03-14

一些调查和分析表明,用户经常拒绝出现在移动应用程序中的位置权限请求,即使该权限对应用程序至关重要,例如应用程序对处理业务逻辑和与移动应用程序交换数据的场所中的设备执行自动扫描。权限请求拒绝率如此之高,以至于对业务来说是个问题。Android中有什么方法可以避免这种情况,例如声明一些经过验证的设备可以在没有权限请求的情况下进行扫描?我想到了https://developer.android.com/guide/topics/connectivity/companion-device-pairing但这也意味着弹出用户手动工作的请求。今天有什么方法可以在幕后完成吗?

共有1个答案

毋树
2023-03-14

不幸的是,出于隐私和安全原因,这是不可能的。在Android设备上启用BLE与位置许可密切相关。唯一可能的解决方法是使用经典蓝牙而不是BLE。我不是百分之百肯定这一点,但本文中提到:-

没有位置权限,任何人都无法使用BLE扫描API,而且在大多数设备上,如果没有活动的位置服务,它是无用的。然而,Bluetooth Low Energy是所谓Bluetooth Classic的扩展,有趣的是,谷歌决定调用该API不需要位置权限。

这是一个无法克服的操作系统要求。您可能已经在BLE的Android开发者页面上看到了这一点:-

为了在应用程序中使用蓝牙功能,您必须声明两个权限。第一个是蓝牙。您需要此权限才能执行任何蓝牙通信,例如请求连接、接受连接和传输数据

您必须声明的另一个权限是ACCESS_FINE_LOCATION。您的应用需要此权限,因为蓝牙扫描可用于收集有关用户位置的信息。此信息可能来自用户自己的设备,以及商店和交通设施等位置使用的蓝牙信标。

你可以在这里找到更多信息:-

  • Android BLE开发终极指南
  • 需要为Android上的BLE启用位置
  • 蓝牙与位置权限
 类似资料:
  • 问题内容: 我最近从更改为Google Play服务,并且刚刚收到有关我不理解的新崩溃报告的通知: 我进行了一些研究,所有结果要么过时,要么与Google + / Google地图相关,但我在应用程序中均未使用它们。 我从来没有在GPS开发人员指南中阅读过adMob需要添加 权限的地方… 有人知道这是什么吗? 问题答案: android设备上最新版本的Google Play服务(v4.3)引入了此

  • 我正在尝试使用activeMq作为具有开放自由的JMS的代理。我设法在队列中获取消息,但我的激活规范从未触发。我在日志中读到了以下内容。 这是我的server.xml配置jms部分

  • 问题内容: 我正在做一组应用程序,并从升级到。由于我使用来处理注释,因此我已使用以下命令禁用了Glassfish的CDI: 尽管如此,当我部署其中一个应用程序时,仍收到以下错误消息: 问题中的类是一个抽象类,在我要部署的应用程序中没有实现,这只是我的类路径中的内容。 禁用CDI后,为什么Glassfish会验证我的身份?为什么Glassfish 对不能变成bean的东西进行验证?如何防止Glass

  • 问题内容: 背景: 我正在尝试使用弹性堆栈 (Elastic,Logstash和Kibana) ,但是我没有钱可支付。我不介意使用封闭源代码的部件,只要它们是免费的即可。在这方面,我试图了解弹性许可的工作原理。 我们打开X-Pack似乎建议在Elastic 6.3之后包含X-Pack代码 (尽管具有不同的许可证) 。我也了解X-Pack的某些部分是免费的,而其他部分则不是免费的。这有点令人困惑。

  • 问题内容: 我想使用户更容易将书签导入到我的服务器。无论如何,是否有使用JavaScript自动执行此过程以获取用户书签的步骤?我假设浏览器必须具有此功能- 而且由于固有的安全风险,我不确定是否有任何浏览器可以使用。 问题答案: 不,出于 安全/隐私原因 ,这是不可能的。唯一的方法是通过表单输入 明确地 要求他们给您,但是我认为您不想这样做。

  • 问题内容: 我正在进行实验,发现以下代码可以在Eclipse上编译并正常运行(版本ID:20090920-1017,不确定确切的编译器版本): 在Eclipse中编译并运行时,此命令会正常打印并退出。 对于编译器,这将按预期方式抛出。 那么Eclipse Java编译器中有bug吗? 问题答案: 这是一个错误。这是根据 Java语言规范,第三版 的声明的指定行为: [JLS 14.11 声明](h