禁止蓝牙发现弹出窗口

时间:2017-01-10 21:48:09

标签: android xamarin

我正在为Android构建一个蓝牙应用程序。我有一个UI按钮,当我按下它时,我想要使用蓝牙发现模式30秒。我现在的代码完美地做到了这一点,但是它会生成一个弹出窗口,询问我是否要允许蓝牙发现。这个popup有点破坏我的应用程序的流程,所以有没有办法绕过它?

2 个答案:

答案 0 :(得分:0)

是。您可以检查它是否已启用并以编程方式启用它,

BluetoothManager btm = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter bta = btm.getAdapter();
if (!bta.isEnabled()) {
  boolean ret = bta.enable();
  if (!ret) {
    // enable failed!
  }
}

您需要获得BLUETOOTH_ADMIN权限,

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

答案 1 :(得分:0)

不,你不能绕过它。 Android 6引入了动态权限。这允许用户更准确地指定他想要授予应用程序的权限。

对于Android用户,它不会破坏流程。对他来说是正常的。这就是Android的工作原理(和iOS一样)。

请参阅:https://developer.android.com/guide/topics/permissions/requesting.html

BLUETOOTH_ADMIN被视为正常许可。但是对于扫描,您还需要ACCESS_COARSE_LOCATION和/或ACCESS_FINE_LOCATION。这些被归类为危险权限,这就是您需要询问用户一次的原因。

另见:BluetoothLeScanner.startScan()

有几篇关于如何处理权限的博客文章。 James Montemagno为此发布了一个插件。