这是我程序的2个部分

1。

Set<BluetoothDevice> pairedDevices;
BluetoothDevice[] pairedDevicesArray;


2。

pairedDevices = btAdapter.getBondedDevices();
//pairedDevicesArray = (BluetoothDevice[]) pairedDevices.toArray();


问题在于注释行。取消注释会使我的应用停止。是否不可能将上述Set转换为array,以便我可以随机访问BluetoothDevice中的array对象。

Java和android的新手

更新:使用pairedDevicesArray = pairedDevices.toArray(new BluetoothDevice[0]);代替上面的注释行可以解决问题,有什么区别?

最佳答案

您可以尝试将Set内容作为数组获取。您需要检查返回的getBondedDevices值是否为非空。根据文档,如果出现错误,BluetoothAdapter.getBondedDevices()可以返回null

pairedDevices = btAdapter.getBondedDevices();
if(null != pairedDevices){
    pairedDevicesArray = (BluetoothDevice[]) pairedDevices.toArray();
}

关于android - 将Set <BluetoothDevice>转换为BluetoothDevice [],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14869618/

10-10 08:47