Forum » Programiranje » [Android] Thread
[Android] Thread
marjan_h ::
Implementiral sem točno te niti katere kodo dobite na android guide. Vendar ko kličem start(), ne dobim niza teksta. Ali je pravilno da ker se jaz z mobitelom povežem na bluetooth napravo, je mobitel klient, pravtako on čaka v neskončni zanki da mu nekdo nekaj pošlje. Jaz sem preskočil del za programiranje strežnika.
Upam da sedaj ni preveč kode. Če želite lahko dam logcat, vendar je dolg 10000 vrstic. Ali naj filtriram samo za to aplikacijo? Se pri logcatu izpiše tudi e.printStackTrace()?
private class ConnectThread extends Thread { private final BluetoothSocket mmSocket; private final BluetoothDevice mmDevice; public ConnectThread(BluetoothDevice device) { BluetoothSocket tmp = null; mmDevice = device; try { tmp = device.createRfcommSocketToServiceRecord(MY_UUID); } catch (IOException e) { e.printStackTrace(); } mmSocket = tmp; } public void run() { btAdapter.cancelDiscovery(); try { mmSocket.connect(); } catch (IOException connectException) { connectException.printStackTrace(); try { mmSocket.close(); } catch (IOException closeException) { closeException.printStackTrace(); } return; } // connected thread start ConnectedThread objekt = new ConnectedThread(mmSocket); objekt.start(); } public void cancel() { try { mmSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } }
private class ConnectedThread extends Thread { private final BluetoothSocket mmSocket; private final InputStream mmInStream; public ConnectedThread(BluetoothSocket socket) { mmSocket = socket; InputStream tmpIn = null; try { tmpIn = socket.getInputStream(); } catch (IOException e) { e.printStackTrace(); } mmInStream = tmpIn; } public void run() { byte[] buffer = new byte[1024]; int bytes; while (true) { try { bytes = mmInStream.read(buffer); String str = new String(buffer, "UTF-8"); Toast.makeText(getApplicationContext(), str, 0).show(); } catch (IOException e) { e.printStackTrace(); break; } } } public void cancel() { try { mmSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }
Upam da sedaj ni preveč kode. Če želite lahko dam logcat, vendar je dolg 10000 vrstic. Ali naj filtriram samo za to aplikacijo? Se pri logcatu izpiše tudi e.printStackTrace()?
FrEaKmAn ::
afaik se printStackTrace ne prikaže, uporabi
pa poročaj če kaj dobiš...
ps: filtriraj v logcatu samo po errorju..
try { ... } catch (IOException e) { Log.e("YOUR_APP_LOG_TAG", "I got an error", e); }
pa poročaj če kaj dobiš...
ps: filtriraj v logcatu samo po errorju..
Mavrik ::
e.printStackTrace() se jasno pokaže v logcatu kot ERROR level.
The truth is rarely pure and never simple.
Spura ::
Tole je blazno cudno sprogramirano. Pa tudi zasnova, zakaj 2 threada, ce pa program le en connection fura?
marjan_h ::
Dva threada sta zato, ker v official android guide tako piše. Jaz sem se držal teh navodil.
Ugotovil sem da je UUID napačno generiran. Vzel sem enega znanega iz neta in dela.
Sedaj je drugi problem, osredotočite se na kodo:
Poskusil sem tudi z ASCII, vendar problem je ker dobim namesto "Hello world", "H@@@€€€€~łłl".
Kaj je problem tukaj? Encoding? Zakaj dela z drugo aplikacijo pravilno tukaj pa ne?
Hvala
Ugotovil sem da je UUID napačno generiran. Vzel sem enega znanega iz neta in dela.
Sedaj je drugi problem, osredotočite se na kodo:
bytes = mmInStream.read(buffer); String str = new String(buffer, "UTF-8");
Poskusil sem tudi z ASCII, vendar problem je ker dobim namesto "Hello world", "H@@@€€€€~łłl".
Kaj je problem tukaj? Encoding? Zakaj dela z drugo aplikacijo pravilno tukaj pa ne?
Hvala
marjan_h ::
In kako vem kje se konča prebran byte? Z EOF ali kako?
Mi lahko pokažeš to v treh vrsticah kode, java ima zagotovo kakšno knjižnico zato.
Hvala Spura
Mi lahko pokažeš to v treh vrsticah kode, java ima zagotovo kakšno knjižnico zato.
Hvala Spura
Kocka ::
Meni je v oči padlo najprej to, da v threadu kličeš Toast.makeText. Mislim, da se to lahko kliče samo na UI threadu in nikjer drugje. Toast funkcijo je potrebno poklicati preko Handlerja in post funkcije.
Glej primere, kako to rešujejo:
http://stackoverflow.com/questions/4209...
in naprimer:
http://stackoverflow.com/questions/3134...
Glej primere, kako to rešujejo:
http://stackoverflow.com/questions/4209...
in naprimer:
http://stackoverflow.com/questions/3134...
Spura ::
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Android] Bluetooth aplikacijaOddelek: Programiranje | 1096 (959) | marjan_h |
» | [Android] Nov tip shranjevanja slikeOddelek: Programiranje | 2193 (1317) | urosz |
» | Java - problem povezave na FTPOddelek: Programiranje | 1190 (1047) | igor0203 |
» | Java in pošiljanje elektronske pošte!!Oddelek: Programiranje | 1363 (1264) | janez_janez |
» | Kako pošiljanje datotek v JAVI.Oddelek: Programiranje | 1844 (1715) | kopernik |