代码之家  ›  专栏  ›  技术社区  ›  psycho_pat

Android应用程序中的权限

  •  0
  • psycho_pat  · 技术社区  · 5 月前

    晚上好,

    我正在开发一款应用程序,用来玩我制造的遥控车。汽车通过蓝牙SPP控制。

    为了使用蓝牙,我请求Bluetooth_CONNECT运行时权限。

    在安卓14(API 34)模拟设备中测试该应用程序运行良好,权限弹出窗口显示,我可以授予或拒绝权限。

    但是,当我尝试在我的Android 10三星Galaxy S9上运行我的应用程序时,权限弹出窗口不会显示,应用程序的行为就像权限被拒绝了一样。权限甚至没有出现在设置中,因此我无法通过设置授予它。

    我缺少什么吗? adb logcat 在Android 14和Android 10设备上均未显示错误。

    像往常一样,Android开发人员文档没有帮助。

    我确实有Java开发的经验,但我是Android开发的新手。我希望避免切换到Kotlin。我使用LibGDX 1.12.1开发我的应用程序。

    1 回复  |  直到 5 月前
        1
  •  0
  •   CommonsWare    5 月前

    像往常一样,Android开发人员文档没有帮助

    文件显示 the BLUETOOTH_CONNECT permission is new to API Level 31 ,以及 API Level 31 is for Android 12 .

    因此,您无法在Android 10上请求该权限。

    文件甚至有 an entire page dedicated to Bluetooth permissions ,包括 a section for Android 11 and older a section for Android 12 and higher .

    对于您的Android 10设备,您需要 BLUETOOTH ACCESS_FINE_LOCATION 清单中的权限,您需要请求 ACCESS_FINE_LOCATION 在运行时。您可以使用 android:maxSdkVersion 属性 on the <uses-permission> manifest element 这样您就不会在较新的设备上请求这些权限。