Hirdetés

Új hozzászólás Aktív témák

  • angyalpc2

    aktív tag

    válasz angyalpc2 #4471 üzenetére

    Sajnos csak folytatom a sort mint nagyon kezdő..
    A net teli van gyönyörűséges Bluetooth be-kikapcsolás és párosítás programokkal.
    Csak a legfontosabb... a konnektálás, a kapcsolódás hiányzik.
    Ha van is akkor az egyből a Háború és béke terjedelem kategóriát közelíti, hogy földobott párosítási(dott) listából kiválasszam ami nekem kell és ahhoz kapcsolódjon is.

    Egy HC06-os tehát elvileg sima Kliens típusú csatlakozást kellene véghez vinni.
    (még neve sincs csak a hexa kód)

    Találtam is a neten sok okosságot
    [link]
    https://developer.android.com/guide/topics/connectivity/bluetooth.html#ConnectingAsAClient

    De sajnos problémába ütköztem, hogy nem tudom meghívni gombnyomásra a Connectálást
    Vagy legalább is nem értem még hogy kell ezt lekezelni, hogy hogyan induljon el ez a folyamat.
    Próbáltam úgy is hogy egyből az UUID stringet küldöm ki...gondolom ez a hexa címe BT device-nak

    De az is érdekes, hogy mBluetoothAdapter.cancelDiscovery(); is leakad, fordításkor hibát jelez.
    cancelDiscovery(); (Non-Static Methode cannot be referenced from a static context

    Szóval a kód:
    private class ConnectThread extends Thread {
    private final BluetoothSocket mmSocket;
    private final BluetoothDevice mmDevice;
    private final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-123456789123");
    public ConnectThread(BluetoothDevice device) {
    // Use a temporary object that is later assigned to mmSocket
    // because mmSocket is final.
    BluetoothSocket tmp = null;
    mmDevice = device;

    try {
    // Get a BluetoothSocket to connect with the given BluetoothDevice.
    // MY_UUID is the app's UUID string, also used in the server code.
    tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
    } catch (IOException e) {
    Log.e(TAG, "Socket's create() method failed", e);
    }
    mmSocket = tmp;
    }

    public void run() {
    // Cancel discovery because it otherwise slows down the connection.
    mBluetoothAdapter.cancelDiscovery();

    try {
    // Connect to the remote device through the socket. This call blocks
    // until it succeeds or throws an exception.
    mmSocket.connect();
    } catch (IOException connectException) {
    // Unable to connect; close the socket and return.
    try {
    mmSocket.close();
    } catch (IOException closeException) {
    Log.e(TAG, "Could not close the client socket", closeException);
    }
    return;
    }

    // The connection attempt succeeded. Perform work associated with
    // the connection in a separate thread.
    manageMyConnectedSocket(mmSocket);
    }

    // Closes the client socket and causes the thread to finish.
    public void cancel() {
    try {
    mmSocket.close();
    } catch (IOException e) {
    Log.e(TAG, "Could not close the client socket", e);
    }
    }
    }

    Kösz a segítséget...rám fér :)
    Ha esetleg van valakinek ötlete hogy lehetne megcsinálni a kapcsolódást egyszerűbben? :R

Új hozzászólás Aktív témák