1

これが私のプログラムの2つの部分です

1.

Set<BluetoothDevice> pairedDevices;
BluetoothDevice[] pairedDevicesArray;

2.

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

問題はコメント行にあります。コメントを外すとアプリが停止します。上記Setをに変換して、ランダムにオブジェクトにarrayアクセスできるようにすることはできません。BluetoothDevicearray

Java と android の初心者

更新:pairedDevicesArray = pairedDevices.toArray(new BluetoothDevice[0]);上記のコメント行の代わりに使用すると、問題が解決します。違いは何ですか?

4

1 に答える 1

1

Setあなたが試したように、内容を配列として取得することは可能です。getBondedDevicesの戻り値がnull でないことを確認する必要があります。ドキュメントに従って、エラーが発生した場合にBluetoothAdapter.getBondedDevices()戻ることができnullます。

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