【问题标题】:Android Bluetooth permission not displayed, still descirbed as turned on安卓蓝牙权限未显示,仍描述为开启
【发布时间】:2017-07-09 17:36:35
【问题描述】:

我的蓝牙权限有问题。我在清单中声明了以下几行:

<permission android:name="android.permission.BLUETOOTH" android:label="BLUETOOTH" />
<permission android:name="android.permission.BLUETOOTH_ADMIN" />

奇怪的是,在应用设置而不是蓝牙中,我有权添加位置和存储权限。但是好的,可以说android没有为蓝牙提供特定的perms,这些与BT相同。奇怪的是,即使我没有给应用程序任何权限(不是为了内存,不是为了本地化),也可以使用以下代码:

  int permissionCheck = ContextCompat.checkSelfPermission(this,
                Manifest.permission.BLUETOOTH_ADMIN);

        if(permissionCheck ==  PackageManager.PERMISSION_GRANTED){
            Toast.makeText(this, "granted", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "not granted :(", Toast.LENGTH_SHORT).show();
        }

我仍然收到已授予权限的消息。有没有搞错?我应该专门检查 EXTERNAL_STORAGE 和 Location 权限吗?为什么蓝牙没有显示在应用权限配置中?

【问题讨论】:

    标签: android bluetooth permissions manifest


    【解决方案1】:

    Android 中有两种权限:

    危险权限:如果 targetSdkVersion 为 23 或更高,则需要这些权限才能在运行时询问。

    普通权限:如果你在 Manifest 中定义这些权限就足够了。

    欲了解更多详情,请查看以下链接:

    https://developer.android.com/guide/topics/permissions/requesting.html#normal-dangerous

    【讨论】:

    • 是的,已经找到了,还是不知道为什么要显示内存和本地化权限,如果我没有要求的话。
    • 对不起,我没听懂你在说什么。能再详细一点吗?
    • 当然,抱歉,如果我没有清楚地描述它。在设备的设置中,您可以选择应用程序选项卡,并在那里找到您的应用程序。然后您可以选择权限并启用所选的权限。如果我没有在清单中明确添加它们,我很好奇为什么 Android 会要求访问内存和位置。
    • 您是否在您的应用中使用 Google Play 服务?
    • 不错的收获!尽管如此,作为问题背后原因的主要问题仍然存在。禁用与基于蓝牙的远程设备的屏幕连接后被暂停。添加了清单的所有权限,关闭了该应用程序的省电功能,每秒获得响应式 ping 流。尽管如此,连接似乎还是随机停止(应用程序被冻结?):(
    猜你喜欢
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多