以下是我的程序的两部分
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]);
代替上面的注释行解决了这个问题。有什么区别?
答案 0 :(得分:1)
可以像您尝试的那样将Set
内容作为数组获取。您需要检查getBondedDevices
的返回值是否为空。根据文档,如果出现错误,BluetoothAdapter.getBondedDevices()
可以返回null
。
pairedDevices = btAdapter.getBondedDevices();
if(null != pairedDevices){
pairedDevicesArray = (BluetoothDevice[]) pairedDevices.toArray();
}