Jak ustawić bluetooth socket server?

0

Nie wiem czy sa tu programiści na androida ale się zapytam!
Czy pomoże mi ktoś ze zrobieniem klient server na bluetooth w android??

napisałem takie coś, ale to mi sie wywala aplikacja jak tylko klikam connect
po kliknięciu connect wywołuje to tak

BluetoothServer server = new BluetoothServer ();
server.start;
class BluetoothServer extends Thread
{
    private final BluetoothServerSocket mmSocketServer; // socket przy użyciu którego będzie odbywała się komunikacja.

    BluetoothServer()
    {
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothServerSocket temp = null;

        try
        {
            UUID uuid = UUID.fromString("550e8400-e29b-41d4-a716-446655440000");
            temp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("Powitanie", uuid); // przypisujemy nazwe usługi i indetyfikator
        }
        catch(IOException e) {}
        mmSocketServer = temp;
    }

    public void run()
    {
        BluetoothSocket socket = null;
        while(true)
        {
            try
            {
                socket = mmSocketServer.accept();
            }
            catch(IOException e)
            {
                break;
            }
            if(socket != null)
            {
                try
                {
                    mmSocketServer.close();
                }
                catch(IOException e)
                {
                    break;
                }
            }
        }


    }
}

Proszę o pomoc jak to niby nasłuchuje nadchodzących połączeń, to nawet ani troche nie przypomina broadcast który nasłuchuje akcji

dodanie znaczników <code class="java"> - furious programming

0

Dałeś kod, to fajnie.
napisałeś "ale to mi sie wywala aplikacja jak tylko klikam connect", taką inforamcję to podaje użytkownik programu a nie programista.
Zapewne leci jakiś wyjątek, napisz jaki, ja zgaduje, że problemem jest null pointer exception.

Z błędów widzę:

  1. po kiego grzyba używasz zmiennej tmp?
  2. jak łapiesz wyjątek to przynajmniej loguj sobie go logcat'em, żebyś wiedział, co jest nie tak
  3. czemu zamykasz serwer zaraz po poprawnym odebraniu socket'a?
0

taki log jest

05-15 22:41:11.765  26757-26992/com.bluetooth2.app E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-2099
    java.lang.NullPointerException
            at com.bluetooth2.app.BluetoothServer.run(MainActivity.java:414)
05-15 22:41:19.850  26757-26757/com.bluetooth2.app I/Choreographer﹕ Skipped 479 frames!  The application may be doing too much work on its main thread.

linia 414 to socket = mmSocketServer.accept();

temp ponieważ tak jest na stronie androida i wielu przykładach jakie widziałem, dałem ponieważ nie bardzo wiem o co w tym chodzi, a jak zadziała to się zastanowie jak to poprawić.
czemu zamykam?? nie wiem

0

no czyli tak naprawdę wcześniej masz exception, który łapiesz i nic z nim nie robisz.
temp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("Powitanie", uuid); nie kończy się sukcesem.
Dodaj log do sekcji catch, albo lepiej nie łap tego wyjątku (po co tworzyć wątek kiedy jest nie potrzebny).

Pewnie w manifeście brakuje uprawnień, więc leci exception, jak sobie go zalogujesz to będziesz wiedział w czym problem.

0

muszę dać do tego wyjątek bo się kompilator skarży że NIE MA, na stronie androida w przykładzie tez nic nie robi w tym wyjątku
mówisz że to nie kończy się sukcesem

temp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("Powitanie", uuid);

to ma nasłuchiwać nadchodzących połączeń, a ja jeszcze nie próbuje się połączyć.

0

w manifescie są uprawnienia

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

dodanie znacznika <code class="xml"> - furious programming

0

Przyczepiłeś się moich zgadywanek, zamiast zastosować się do rad praktycznych.
Zastosuj się do tych rad praktycznych i popraw kod tak, by błędy generowały wpis w logach.
Ja bym na wstępie zrobił to tak:

class BluetoothServer extends Thread
{
    private static final String TAG = "ServerThread";
    private final BluetoothServerSocket mmSocketServer; // socket przy użyciu którego będzie odbywała się komunikacja.
 
    BluetoothServer()
    {
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
 
        try
        {
            UUID uuid = UUID.fromString("550e8400-e29b-41d4-a716-446655440000");
            mmSocketServer = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("Powitanie", uuid); // przypisujemy nazwe usługi i indetyfikator
        }
        catch(IOException e) {
           Log.e(TAG, "initialization: " + e.getMessage());
        }
    }
 
    public void run()
    {
        if (socket==null)
             return;
        try {
            while(true) {
                BluetoothSocket socket = mmSocketServer.accept();
                // processNewSocket(socket);
            }
        } catch(IOException e) {
                Log.e(TAG, "Server loop: " + e.getMessage());
        } finally {
                mmSocketServer.colse();
        }
    }
}
0

zrobiłem takie coś

class SerwerBluetooth extends Thread
{
    private static final String TAG = "ServerThread";
    private final BluetoothServerSocket mmServerSocket;

    public SerwerBluetooth()
    {
        BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        BluetoothServerSocket tmp = null;
        try
        {
            UUID uuid=UUID.fromString("550e8400-e29b-41d4-a716-446655440000");
            tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("Usł‚uga witająca", uuid);
        }
        catch (IOException e)
        {
            Log.e(TAG, "initialization: " + e.getMessage());
        }
        mmServerSocket = tmp;
    }

    public void run()
    {
        Log.d("INFO","Uruchamiam serwer");
        BluetoothSocket socket = null;
        while (true)
        {
            try
            {
                Log.d("INFO","Czekam na połączenie od clienta");
                socket = mmServerSocket.accept();
                Log.d("INFO","Mam clienta!");
                //PrintWriter out = new PrintWriter(socket.getOutputStream(),true);
                //out.println("Witaj kolego!");
                // BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            } catch (IOException e)
            {
                Log.e(TAG, "Server loop: " + e.getMessage());
                break;
            }
            if (socket != null)
            {

                try
                {
                    mmServerSocket.close();
                } catch (Exception e)
                {
                    e.printStackTrace();
                }
                break;
            }
        }
    }
}

mam log taki

05-20 09:10:44.565  11104-11109/com.bluetooth2.app I/jdwp﹕ Ignoring second debugger -- accepting and dropping
05-20 09:10:44.595  11104-11109/com.bluetooth2.app I/jdwp﹕ Ignoring second debugger -- accepting and dropping
05-20 09:10:44.700  11104-11104/com.bluetooth2.app D/dalvikvm﹕ GC_FOR_ALLOC freed 91K, 13% free 9528K/10951K, paused 22ms, total 22ms
05-20 09:10:44.710  11104-11104/com.bluetooth2.app D/AbsListView﹕ Get MotionRecognitionManager
05-20 09:10:44.730  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketNative
05-20 09:10:44.740  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...fd 43 created (RFCOMM, lm = 26)
05-20 09:10:44.740  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketFromFdNative
05-20 09:10:44.745  11104-11104/com.bluetooth2.app D/BluetoothUtils﹕ isSocketAllowedBySecurityPolicy start : device null
05-20 09:10:44.745  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ bindListenNative
05-20 09:10:44.745  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...bindListenNative(43) success
05-20 09:10:44.745  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ abortNative
05-20 09:10:44.745  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_abort(43) complete
05-20 09:10:44.745  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ destroyNative
05-20 09:10:44.745  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_destroy(43) complete
05-20 09:10:44.745  11104-11104/com.bluetooth2.app E/ServerThread﹕ initialization: Not able to register SDP record for Usł‚uga witająca
05-20 09:10:44.750  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketNative
05-20 09:10:44.750  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...fd 43 created (RFCOMM, lm = 26)
05-20 09:10:44.750  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketFromFdNative
05-20 09:10:44.750  11104-11104/com.bluetooth2.app D/BluetoothUtils﹕ isSocketAllowedBySecurityPolicy start : device null
05-20 09:10:44.755  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ bindListenNative
05-20 09:10:44.755  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...bindListenNative(43) success
05-20 09:10:44.755  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ abortNative
05-20 09:10:44.755  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_abort(43) complete
05-20 09:10:44.755  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ destroyNative
05-20 09:10:44.755  11104-11104/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_destroy(43) complete
05-20 09:10:44.755  11104-11104/com.bluetooth2.app E/ServerThread﹕ initialization: Not able to register SDP record for Usł‚uga witająca
05-20 09:10:44.780  11104-11118/com.bluetooth2.app D/INFO﹕ Uruchamiam serwer
05-20 09:10:44.780  11104-11118/com.bluetooth2.app D/INFO﹕ Czekam na połączenie od clienta
05-20 09:10:44.780  11104-11118/com.bluetooth2.app W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0x40df12a0)
05-20 09:11:05.295  11550-11550/com.bluetooth2.app D/dalvikvm﹕ GC_FOR_ALLOC freed 126K, 13% free 9528K/10951K, paused 17ms, total 18ms
05-20 09:11:05.315  11550-11550/com.bluetooth2.app D/AbsListView﹕ Get MotionRecognitionManager
05-20 09:11:05.330  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketNative
05-20 09:11:05.330  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...fd 43 created (RFCOMM, lm = 26)
05-20 09:11:05.330  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketFromFdNative
05-20 09:11:05.335  11550-11550/com.bluetooth2.app D/BluetoothUtils﹕ isSocketAllowedBySecurityPolicy start : device null
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ bindListenNative
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...bindListenNative(43) success
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ abortNative
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_abort(43) complete
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ destroyNative
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_destroy(43) complete
05-20 09:11:05.340  11550-11550/com.bluetooth2.app E/ServerThread﹕ initialization: Not able to register SDP record for Usł‚uga witająca
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketNative
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...fd 43 created (RFCOMM, lm = 26)
05-20 09:11:05.340  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketFromFdNative
05-20 09:11:05.350  11550-11550/com.bluetooth2.app D/BluetoothUtils﹕ isSocketAllowedBySecurityPolicy start : device null
05-20 09:11:05.355  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ bindListenNative
05-20 09:11:05.355  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...bindListenNative(43) success
05-20 09:11:05.355  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ abortNative
05-20 09:11:05.355  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_abort(43) complete
05-20 09:11:05.355  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ destroyNative
05-20 09:11:05.355  11550-11550/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_destroy(43) complete
05-20 09:11:05.355  11550-11550/com.bluetooth2.app E/ServerThread﹕ initialization: Not able to register SDP record for Usł‚uga witająca
05-20 09:11:05.365  11550-11563/com.bluetooth2.app D/INFO﹕ Uruchamiam serwer
05-20 09:11:05.365  11550-11563/com.bluetooth2.app D/INFO﹕ Czekam na połączenie od clienta
05-20 09:11:05.370  11550-11563/com.bluetooth2.app W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0x40df12a0)
05-20 09:11:05.370  11550-11563/com.bluetooth2.app E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-837
    java.lang.NullPointerException
            at com.bluetooth2.app.SerwerBluetooth.run(MainActivity.java:421)
05-20 09:11:05.385  11550-11552/com.bluetooth2.app D/dalvikvm﹕ GC_CONCURRENT freed 18K, 13% free 9915K/11335K, paused 12ms+2ms, total 31ms
05-20 09:11:05.430  11550-11550/com.bluetooth2.app D/libEGL﹕ loaded /system/lib/egl/libEGL_mali.so
05-20 09:11:05.435  11550-11550/com.bluetooth2.app D/libEGL﹕ loaded /system/lib/egl/libGLESv1_CM_mali.so
05-20 09:11:05.440  11550-11550/com.bluetooth2.app D/libEGL﹕ loaded /system/lib/egl/libGLESv2_mali.so
05-20 09:11:05.440  11550-11550/com.bluetooth2.app D/﹕ Device driver API match
    Device driver API version: 10
    User space API version: 10
05-20 09:11:05.440  11550-11550/com.bluetooth2.app D/﹕ mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Thu Oct 25 08:43:05 KST 2012
05-20 09:11:05.455  11550-11550/com.bluetooth2.app D/OpenGLRenderer﹕ Enabling debug mode 0
05-20 09:11:13.035  11550-11550/com.bluetooth2.app I/Choreographer﹕ Skipped 457 frames!  The application may be doing too much work on its main thread.
05-20 09:11:15.015  11550-11563/com.bluetooth2.app I/Process﹕ Sending signal. PID: 11550 SIG: 9

robiłem zgodnie z tym przykładem
http://andrzejklusiewicz-android.blogspot.com/2014/02/bluetooth-czyli-niebieskie-pogaduszki.html

i dalej nic

server start daje w brodcastRecaiver kiedy bluetooth się włączy
switch(state)
                                                {
                                                    case(BluetoothAdapter.STATE_ON):
                                                    {
                                                        Toast.makeText(getApplicationContext(), getString(R.string.btON), Toast.LENGTH_SHORT).show();
                                                        SetVisibility();
                                                        btInit();
                                                        new SerwerBluetooth().start();
                                                        break;
                                                    }
.
.
.
.
.

już naprawdę nie mam pojęcie o co chodzi, jak nawet przykład ze strony androida nie działa

linia 421 to jest to Log.d("INFO","Czekam na połączenie od clienta");

0

offtopic: aż żeś się uparł na tą zmienną tmp. To naprawdę nic nie daje, jak poleci wyjątek to gwarantuje ci, że pole mmServerSocket będzie NULL, a jak nie poleci wyjątek to to pole będzie miało właściwą wartość. Tak samo nie rozumiem po co tak komplikujesz metodę run. Moja wersja jest krótsza lepsza i bezpieczniejsza.

no i teraz w logach widać, że podczas inicjalizacji leci wyjątek, w wiadomością: Not able to register SDP record for Usł‚uga witająca (masz literówkę :)).
Teraz trzeba ustalić o co chodzi. Szybkie googlanie i jest odpowiedź na stack overflow.
Czyli używasz, UUID które jest już zajęte.
Wygeneruj sobie nowe UUID. Np takie coś powinno być ok "01DB12EA-2095-41BF-AC56-9733C2DB3E24" (generowane komendą uuidgen na Mac-u).


A jeszcze jedno popraw sobie te logi. Dodaj na początku coś bardziej technicznego, np `e.getClass().getCanonicalName ()` albo `e.toString()` (nie pamiętam co dokładnie zwróci ta metoda w przypadku exception, ale powinno byc to coś bardziej praktycznego niż `e.getMessage()`, które jest bardziej przeznaczone dla użytkownika końcowego niż dla programisty).
0

używam tego tmp bo kompilator nie pozwala przypisywać do zmiennej final wewnątrz bloku try musi być na zewnątrz
korzystam z android studio

0

to na pewno o to uuid jest złe?? Bo już wpisuje od jakiegoś czasu i żadne nie działają

0

dużo więcej to tu nie widać

05-22 23:16:52.398      306-306/com.bluetooth2.app D/﹕ mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Thu Oct 25 08:43:05 KST 2012
05-22 23:16:52.448      306-306/com.bluetooth2.app D/OpenGLRenderer﹕ Enabling debug mode 0
05-22 23:19:19.353      669-669/com.bluetooth2.app D/dalvikvm﹕ GC_FOR_ALLOC freed 120K, 13% free 9528K/10951K, paused 16ms, total 16ms
05-22 23:19:19.363      669-669/com.bluetooth2.app D/AbsListView﹕ Get MotionRecognitionManager
05-22 23:19:19.388      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketNative
05-22 23:19:19.388      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...fd 43 created (RFCOMM, lm = 26)
05-22 23:19:19.388      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ initSocketFromFdNative
05-22 23:19:19.393      669-669/com.bluetooth2.app D/BluetoothUtils﹕ isSocketAllowedBySecurityPolicy start : device null
05-22 23:19:19.398      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ bindListenNative
05-22 23:19:19.398      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...bindListenNative(43) success
05-22 23:19:19.398      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ abortNative
05-22 23:19:19.398      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_abort(43) complete
05-22 23:19:19.398      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ destroyNative
05-22 23:19:19.398      669-669/com.bluetooth2.app V/BluetoothSocket.cpp﹕ ...asocket_destroy(43) complete
05-22 23:19:19.398      669-669/com.bluetooth2.app E/ServerThread﹕ initialization: Not able to register SDP record for bigosik
05-22 23:19:19.398      669-669/com.bluetooth2.app E/ServerThread﹕ initialization: java.io.IOException
05-22 23:19:19.398      669-669/com.bluetooth2.app E/ServerThread﹕ initialization: java.io.IOException: Not able to register SDP record for bigosik
05-22 23:19:19.428      669-672/com.bluetooth2.app D/dalvikvm﹕ GC_CONCURRENT freed 13K, 13% free 9913K/11335K, paused 2ms+2ms, total 27ms
05-22 23:19:19.478      669-669/com.bluetooth2.app D/libEGL﹕ loaded /system/lib/egl/libEGL_mali.so
05-22 23:19:19.478      669-669/com.bluetooth2.app D/libEGL﹕ loaded /system/lib/egl/libGLESv1_CM_mali.so
05-22 23:19:19.488      669-669/com.bluetooth2.app D/libEGL﹕ loaded /system/lib/egl/libGLESv2_mali.so
05-22 23:19:19.493      669-669/com.bluetooth2.app D/﹕ Device driver API match
    Device driver API version: 10
    User space API version: 10
05-22 23:19:19.493      669-669/com.bluetooth2.app D/﹕ mali: REVISION=Linux-r2p4-02rel0 BUILD_DATE=Thu Oct 25 08:43:05 KST 2012
05-22 23:19:19.538      669-669/com.bluetooth2.app D/OpenGLRenderer﹕ Enabling debug mode 0

dodałem to w taki sposób

Log.e(TAG, "initialization: " + e.getMessage());
Log.e(TAG, "initialization: " + e.getClass().getCanonicalName());
Log.e(TAG, "initialization: " + e.toString());

poza tym dlaczego w tym przykładzie co podałem link to jemy to działen ten wątek a mi nie nawet jak go skopiuje to nie działa
start daje w brodcastrecaiver kiedy bluetooth się włączy

0

na takim kluczu 3e283e34-9ad2-467f-b4fe-ef409cb33f82 mi przez hwile działało
ale kiedy dodałem wątek dla klienta to przestało
o co chodzi??

0

Z tego co wygooglałem to jest problem z zarządzaniem zasobami przez system.
Niestety nie znalazłem porządnego rozwiązania tego problemu.
Zrestartuj urządzenie i spróbuj jeszcze raz. Pilnuj też by twój kod dobrze po sobie sprzątał. Jeśli ubijesz swoją aplikację to prawdopodobnie znowu będzie potrzeby restart.
Napisz dokładnie jaki masz telefon (widziałem sugestie by aktualizować firmware), a jeszcze lepiej googlaj sam jego nazwę wraz z opisem błędu, może coś znajdziesz.

0

dobra znalazłem i przeanalizowałem sporo przykładów i udało mi się to zrobić chociaż dalej nie wiem na jakiej zasadzie to działa, jak tylko próbowałem coś zmieniać bardzi w wątkach to od razu robił sie problem z uuid, teraz działa mam prymitywny czat i uuid nie tykam już bo zepsuje.
A teraz mam problem z wyłączeniem wątku kiedy klikam wstecz na telefonie czyli w onDestroy powinienem mieć niszczenie wątku

0

Zapewne masz źle zrobione i komunikację masz w Activity (standardowy błąd zaczynających z Androidem).
Wszelka komunikacja powinna odbywać się w serwisie do którego łączy się Activity.

Pokaż też nowy kod związany z tym, jak czyścisz wątek.

0

więc tak, nie licząc głównego activity stworzyłem jeszcze dwa dla klienta i servera.
W actvity server jest wątek dla servera czyli tam gdzie nasłuchuje połączeń a, w
activity client jest inny wątek gdzie się próbuje połączyć.

w funkcji run mam coś takiego

while (true)
        {
            try
            {
                Log.d("INFO","Czekam na połączenie od clienta");
                socket = mmServerSocket.accept();
                Log.d("INFO","Mam clienta!");
                mmInStream = socket.getInputStream();
                mmOutStream = socket.getOutputStream();
                handler.obtainMessage(SUCCESS_CONNECT, mmOutStream).sendToTarget();

                if( socket != null )
                {
                    while(!this.isInterrupted())
                    {
                        //if(mmInStream.available() > 0)
                       // {
                            Log.d("INFO","nasłuchuje bufor!");
                            if(mmInStream.available() > 0)
                            {
                                bytes = mmInStream.read(buffer);
                                String data = new String(buffer, 0, bytes);
                                handler.obtainMessage(MESSAGE_READ, data).sendToTarget();
                            }

                        //}
                    }
                    Log.d("INFO","Zamykam THREAD interupted!");
                    break;
                }
            }
socket = mmServerSocket.accept();

to coś blokuje kod dopóki się nie połączy i nie wiem jak to obejść, read też blokuje ale mamy metode available() któa sprawdza czy jest coś do odczytu ze strumienia

w on destroy czyli jak nacisne wstecz na telefonie zrobiłem coś takiego, sleep dałem bo myślałem że trzeba troche czasu aż się server zamknie
no i interupt jakoś nie chce zadziałać

@Override
    protected void onDestroy()
    {
        server.interrupt();
        Log.e("INFO", "zgłaszam interrupt");
        try
        {
            Thread.sleep(10000);
        }catch (InterruptedException e) {}
        Log.e("INFO", "wykonałem onDestroy");
        super.onDestroy();
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1