Jeak
Lt. Junior Grade
- Registriert
- Sep. 2007
- Beiträge
- 372
Hey!
Habe im Moment ein Problem, das mich total verwirrt:
Im folgenden Code lasse ich beim Klick auf einen Button eine Bluetooth-Verbindung zu meinem Arduino aufbauen, damit ich diesem danach Befehle senden kann.
Funktioniert alles super.
Nun wollte ich einen ProgressDialog einblenden lassen, solange die Verbindung aufgebaut wird. (zur Veranschaulichung habe ich hierfür im Code einfach mal ein Label ändern lassen)
Wenn ich die App nun starte, führt es seltsamerweise die Befehle in falscher Reihenfolge aus. Und zwar wird, sobald ich auf den Button drücke, die Verbindung aufgebaut und dann "ende" angezeigt.
Durch Test habe ich herausgefunden, dass die Zeile
einfach erst nach dem try-Block ausgeführt wird. Und sofort danach dann eben
, sodass ich "start" gar nicht erst sehe.
Würde mich riesig freuen, wenn mir jemand erklären könnte, wieso das der Fall ist und wie ich es hin bekomme, dass mein Smartphone die Zeilen in der richtigen Reihenfolge ausführt ;-) Hoffe, die Infos reichen hierzu.
Habe im Moment ein Problem, das mich total verwirrt:
Im folgenden Code lasse ich beim Klick auf einen Button eine Bluetooth-Verbindung zu meinem Arduino aufbauen, damit ich diesem danach Befehle senden kann.
Funktioniert alles super.
Nun wollte ich einen ProgressDialog einblenden lassen, solange die Verbindung aufgebaut wird. (zur Veranschaulichung habe ich hierfür im Code einfach mal ein Label ändern lassen)
Wenn ich die App nun starte, führt es seltsamerweise die Befehle in falscher Reihenfolge aus. Und zwar wird, sobald ich auf den Button drücke, die Verbindung aufgebaut und dann "ende" angezeigt.
Durch Test habe ich herausgefunden, dass die Zeile
Code:
textView1.setText("start");
Code:
textView1.setText("ende");
Code:
...
switch2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
textView1.setText("start");
findBT();
try {
openBT();
} catch (IOException ex) {
}
textView1.setText("ende");
}
});
...
void findBT() {
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
}
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBluetooth = new Intent(
BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetooth, 0);
}
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter
.getBondedDevices();
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
if (device.getName().equals("linvor")) {
mmDevice = device;
break;
}
}
};
}
void openBT() throws IOException {
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);
mmSocket.connect();
mmOutputStream = mmSocket.getOutputStream();
mmInputStream = mmSocket.getInputStream();
}
...
Würde mich riesig freuen, wenn mir jemand erklären könnte, wieso das der Fall ist und wie ich es hin bekomme, dass mein Smartphone die Zeilen in der richtigen Reihenfolge ausführt ;-) Hoffe, die Infos reichen hierzu.