【问题标题】:Runtime Permissions for Bluetooth蓝牙的运行时权限
【发布时间】:2016-10-24 02:49:24
【问题描述】:

我知道 android 6.0 需要运行时权限。你能帮我实现蓝牙的运行时权限吗?我尝试使用https://developer.android.com/training/permissions/requesting.html 上的示例,但遇到了一堆错误。谢谢。

【问题讨论】:

  • 你添加了这些premission androidManifest.xml <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
  • 还添加权限<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION /> 还有WifiManager.getScanResults(); BluetoothDevice.ACTION_FOUND; BluetoothLeScanner.startScan();
  • @EmdadHossain 嗨,我收到 BluetoothLescanner.startScan() 错误,无法解决
  • 你能告诉我错误吗?
  • @EmdadHossain 我的代码:在 onCreate 方法中我有:BluetoothDevice = ACTION_FOUND; WifiManager.getScanResults(); BluetoothLeScanner.startScan();它说我缺少每个权限,并且说即使我拥有您在清单文件中所说的所有权限,也无法进行静态引用

标签: android bluetooth runtime-permissions


【解决方案1】:

您可以轻松地创建一个 Permit 对象来开始向用户请求权限。 首先初始化传递您的活动的 Permit 对象

Permit permit=new Permit(MainActivity.this);

然后给这个对象附加一个监听器

permit.setOnPermitStatusListner(new Permit.OnPermitStatusListner()
{
@Override
public void onAllPermitsGranded()
{
  // ALL PERMITS ACCEPTED
}

@Override
public void onSomePermitsDenied(ArrayList<String> deniedPermits)
{
  // SOME PERMITS ACCEPTED
}

@Override
public void onAllPermitsDenied()
{
  // ALL PERMITS DENIED
}
});

然后询问你需要工作的所有权限(必须在 Manifest 中声明)

permit.askPermitsFor(Manifest.permission.BLUETOOTH,Manifest.permission.BLUETOOTH_ADMIN,Manifest.permission.<Other BT permissions>);

您需要添加此库才能使用 Permit 对象。这是完整的文档:https://github.com/sangeethnandakumar/TestTube

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-27
    • 2023-02-10
    • 2014-10-24
    • 2013-09-01
    • 2021-11-26
    • 1970-01-01
    • 2021-08-15
    • 2016-11-14
    相关资源
    最近更新 更多