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