android - getbondeddevices() 不返回配对的蓝牙设备

标签 android bluetooth

我正在尝试枚举所有与我的设备配对的蓝牙设备。在设置中我可以查看配对设备,但以下代码不返回任何项目:

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDeviceSet = bluetoothAdapter.getBondedDevices();

我看过this和其他使用这种方法的帖子,但我似乎无法让它发挥作用。

我在 Manifest.xml 中拥有以下权限:

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

此外,如果我将其中一个配对设备置于发现模式并进行扫描,则该设备会返回配对状态。如果我检查:

device.getBondState() == BluetoothDevice.BOND_BONDED

从扫描中,它返回 true。

我做错了什么或没理解什么?

最佳答案

您的代码完全正确。我的应用程序中有完全相同的东西,而且我从未收到任何用户提示此功能不起作用。请检查您应用程序的其他部分。下面是我的应用程序的 fragment ,它执行相同的操作,并且我拥有与您描述的相同的权限。

BluetoothAdapter mBtAdapter = BluetoothAdapter.getDefaultAdapter();

Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices();

if (pairedDevices.size() > 0) {
    findViewById(R.id.title_paired_devices).setVisibility(View.VISIBLE);
    for (BluetoothDevice device : pairedDevices) {
        mPairedDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress());
    }
} else {
    mPairedDevicesArrayAdapter.add("No Paired Device.");
}

关于android - getbondeddevices() 不返回配对的蓝牙设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27975199/

相关文章:

Android:Eclipse 保留 Build Workspace,无限循环

android - osmdroid 标记彼此重叠,是否有类似 z-index 的东西?

android - ZXing生成的QR Code中的 'dot'形状是否可以更改?

android - 在 Android java 中,如何长按蓝牙设备调用按钮?

android - 建筑物室内地图 - Android

android - 图表引擎图例位置

android - 如何仅在某些 fragment 中启用 tablayout?

c# - 如何写入 .NET Core 中的文件?

java - Android蓝牙发送文件问题

objective-c - 核心蓝牙的限制?