在Android上禁用蓝牙可发现模式

弱龄寄事外,委怀在琴书。这篇文章主要讲述在Android上禁用蓝牙可发现模式相关的知识,希望能为你提供帮助。
我在android文档中找到了如何打开蓝牙可发现性模式:

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); startActivity(discoverableIntent);

这将使设备可被发现300秒(documentation)。
我的问题是:在超时发生之前如何关闭可发现性?我想在“设置”|“无线和网络”|“蓝牙设置”小程序中复制相应的设置,以便通过单击打开和关闭可发现性。
有帮助吗?
答案只需发送持续时间为1的新可发现请求(或者0甚至可能有效):
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 1); startActivity(discoverableIntent);

另一答案cancelDiscovery()不是为了这个。此方法可用于停止扫描其他蓝牙设备的设备。与此不同的是,使设备不可见。
另一答案使用此方法时要小心,因为隐藏它可能很容易更改。
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); try { Method method = BluetoothAdapter.class.getMethod("setScanMode", int.class); method.invoke(bluetoothAdapter, BluetoothAdapter.SCAN_MODE_CONNECTABLE); } catch (NoSuchMethodException | IllegalArgumentException | IllegalAccessException | InvocationTargetException e) { Log.e(TAG, "Failed to turn off bluetooth device discoverability.", e); }

也适用于SCAN_MODE_NONESCAN_MODE_CONNECTABLE_DISCOVERABLE(使用默认持续时间)
【在Android上禁用蓝牙可发现模式】Source

    推荐阅读