1

这是我的程序的两个部分

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

4

1 回答 1

1

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

pairedDevices = btAdapter.getBondedDevices();
if(null != pairedDevices){
    pairedDevicesArray = (BluetoothDevice[]) pairedDevices.toArray();
}
于 2013-02-14T07:28:07.653 回答