android - 启动 BLUETOOTH_SETTINGS 操作返回 SecurityException(需要 BLUETOOTH_ADMIN 权限)

标签 android security bluetooth permissions admin

我正在尝试使用此 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 解决此问题或使用其他方法打开蓝牙设置页面的任何线索?

最佳答案

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

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

关于android - 启动 BLUETOOTH_SETTINGS 操作返回 SecurityException(需要 BLUETOOTH_ADMIN 权限),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216528/

相关文章:

android - Gps 通知图标不闪烁

android - 安卓中的iptables

android - 在 ArrayAdapter 中覆盖 getDropDownView 时出现样式问题

java - 已签名的 JAR 被 Java 安全阻止

security - 如何仅查看当前分支的 dependentabot 警报?

c# - 如何限制方法的允许调用者?

android - 如何设置安卓蓝牙权限

c# - Microsoft 蓝牙堆栈 RSSI 解决方法

android - 在 APK 文件中嵌入登录详细信息,每个用户不同(或其他选项?)

ios - 在IOS7中获取已连接蓝牙耳机的操作