Android 应用可以在没有 ACCESS_COARSE_LOCATION 权限的情况下使用蓝牙

Posted

技术标签:

【中文标题】Android 应用可以在没有 ACCESS_COARSE_LOCATION 权限的情况下使用蓝牙【英文标题】:Android app can use bluetooth without ACCESS_COARSE_LOCATION permission 【发布时间】:2019-07-30 14:27:34 【问题描述】:

我需要通过我的安卓应用来操作蓝牙打印机。我遇到了以下文档页面,该页面描述了如何从 android 应用程序使用蓝牙。

https://developer.android.com/guide/topics/connectivity/bluetooth

在这个文档中,它说应用程序应该声明它需要android.permission.ACCESS_COARSE_LOCATION 权限。

然后我发现了一个可以操作蓝牙打印机的android应用程序的github项目。

https://github.com/deysuman/Android-Bluetooth-printer

但是在这个github项目中,可以看到android.permission.ACCESS_COARSE_LOCATION并没有在它的manifest中声明。但是这个应用程序运行良好,没有问题。

那么,这个应用程序如何在不声明android.permission.ACCESS_COARSE_LOCATION 的情况下工作?

【问题讨论】:

请注意,它的 targetSDKVersion 是 24。这意味着它可以按照一套旧规则运行。当然,这种类型的应用程序将不再允许在 Play 商店中使用(最低为 26 或 27 IIRC)。如果你碰撞 targetSDKVersion,它可能不再起作用。 @GabeSechan 很好的观察,但实际上我必须将 targetSdkVersion 提高到 28 才能编译它,但它仍然有效。我正在 android 6.0 上测试该应用程序。可以这样吗? 这绝对是原因。我认为隐私权的推动直到后来才出现。 Google 的文档往往只对最新版本准确。 【参考方案1】:

该项目的 build.gradle 文件针对没有该要求的旧 Android API (24)。

【讨论】:

以上是关于Android 应用可以在没有 ACCESS_COARSE_LOCATION 权限的情况下使用蓝牙的主要内容,如果未能解决你的问题,请参考以下文章

Android 应用可以在没有 ACCESS_COARSE_LOCATION 权限的情况下使用蓝牙

在没有市场的 Android 上安装 APK 应用程序

有没有办法在 Android 中测试 Kivymd 应用程序?

是否可以在没有我的服务器的情况下从 Android 应用程序付款?

有没有办法了解Android中运行时前端的应用程序是什么?

是否可以在运行时从 Android 应用程序动态加载库?