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 中测试 Kivymd 应用程序?