将Set <bluetoothdevice>转换为BluetoothDevice [] </bluetoothdevice>

时间:2013-02-14 07:16:49

标签: android

以下是我的程序的两部分

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]);代替上面的注释行解决了这个问题。有什么区别?

1 个答案:

答案 0 :(得分:1)

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

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