【问题标题】:Start BLUETOOTH_SETTINGS Action Returns SecurityException (Requires BLUETOOTH_ADMIN Permission)启动 BLUETOOTH_SETTINGS 操作返回 SecurityException(需要 BLUETOOTH_ADMIN 权限)
【发布时间】:2020-03-31 15:31:41
【问题描述】:

我正在尝试使用此 ADB 命令进入 Android 上的蓝牙设置页面。

adb shell am start -a android.settings.BLUETOOTH_SETTINGS

但是,我收到一个 SecurityException 响应,说我需要 android.permission.BLUETOOTH_ADMIN 权限

Starting: Intent { act=android.settings.BLUETOOTH_SETTINGS }
Security exception: Permission Denial: starting Intent { act=android.settings.BLUETOOTH_SETTINGS flg=0x10000000 cmp=com.android.settings/.Settings$BluetoothSettingsActivity } from null (pid=19661, uid=2000) requires android.permission.BLUETOOTH_ADMIN

java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.BLUETOOTH_SETTINGS flg=0x10000000 cmp=com.android.settings/.Settings$BluetoothSettingsActivity } from null (pid=19661, uid=2000) requires android.permission.BLUETOOTH_ADMIN
at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1922)
at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:631)
at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:411)
at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:1281)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6014)
at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:424)
at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:142)
at android.os.ShellCommand.exec(ShellCommand.java:96)
at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:18782)
at android.os.Binder.shellCommand(Binder.java:581)
at android.os.Binder.onTransact(Binder.java:481)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:4775)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3844)
at android.os.Binder.execTransact(Binder.java:682)

关于如何通过 ADB 解决此问题或通过其他方法打开蓝牙设置页面的任何线索?

【问题讨论】:

    标签: android security bluetooth permissions admin


    【解决方案1】:

    如果您要配对设备,则可以使用adb shell am start -a android.bluetooth.devicepicker.action.LAUNCH。或者您可以使用adb shell am start -a android.settings.SETTINGS 并导航到蓝牙设置。

    否则,您可能可以制作一个具有 BLUETOOTH_ADMIN 权限的简单应用并按照答案here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 2020-05-03
      • 2018-05-23
      • 1970-01-01
      • 2015-04-05
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多