Я пытаюсь создать приложение, которое будет обнаруживать находящиеся поблизости устройства Bluetooth и выбрасывать все mac-адреса в список. По причинам, которые я не понимаю, приложение завершает работу, если я пытаюсь использовать список для хранения строк из device.getAddress ().
После неудачной попытки поместить эти адреса в список, я сдался и использовал ArrayAdapter, увидев, что он использовался в некотором примере кода. Я подумал, что, возможно, я смогу поместить результаты в ArrayAdapter, затем извлечь из него адреса и в myList. Все еще не будет работать. Насколько я могу судить, я не могу использовать списки без сбоя моего приложения ...
Приложение не аварийно завершает работу, когда я комментирую что-либо, имеющее отношение к myList.
/* these are declared as class members */
//private ArrayAdapter<String> myArrayAdapter;
//private List<String> myList;
/*-------------------------------*/
private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
int position = 0;
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
myArrayAdapter.add(device.getAddress());
//myList.add(device.getAddress());
//position++; //SO USING THIS INTEGER...
} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
btnLocate.setText("Refresh Location");
btnLocate.setClickable(true);
//position--;
//while(position>=0){
//myList.add(myArrayAdapater.getItem(position).toString());
//position--;
//}
}
}
};
LogCat:
12-02 12:01:54.472: E/AndroidRuntime(16043): FATAL EXCEPTION: main
12-02 12:01:54.472: E/AndroidRuntime(16043): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.bluetooth.device.action.FOUND (has extras) } in com.ronnyszutu.lpf.LPFMainActivity$1@40519840
12-02 12:01:54.472: E/AndroidRuntime(16043): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:722)
12-02 12:01:54.472: E/AndroidRuntime(16043): at android.os.Handler.handleCallback(Handler.java:587)