adt bundle ile bluetooth listelemesinden sonra istenilen cihaza bağlanmasını istiyorum. listeme kodları şu şekilde.

pairedDevices = BA.getBondedDevices();
ArrayList list = new ArrayList();
                  for(BluetoothDevice bt : pairedDevices)
                     list.add(bt.getName());
                  Toast.makeText(getApplicationContext(),"bluetooth cihazları yükleniyor. ",
                  Toast.LENGTH_SHORT).show();
                          final ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_list_item_1,list);
                  lv.setAdapter(adapter);

tıklandığında listedeki cihazın adını toastla gösteriyorum.

String val=(String)(lv.getItemAtPosition(position));

Toast.makeText(getApplicationContext(), (val+ " a tıkladınız"), Toast.LENGTH_LONG).show();

cihaza bağlanması için cihazın adı mı gerekli? Bağlantı için gereken kodlar nelerdir? Sadece bağlanmasını istiyorum şu an için veri göndermeme gerek yok. Teşekkürler.

soruldu: 14 Nis '14, 05:30

kaptan's gravatar image

kaptan
445334244
cevap kabul oranı: 0%


Merhaba, Konu üzerinde daha önce bir çalışmam olmadı ama, meraktan biraz araştırdım. Google cihazın Mac adresinin kullanarak bağlanman gerektiğini söylüyor.Öncelikle bağlanman gerek cihazı seçtikden sonra

//stackoverflowdan bir örnek //http://stackoverflow.com/questions/6369585/how-to-connect-with-paired-bluetooth-device-programmatic-in-android

BluetoothDevice mBluetoothDevice = mBluetoothAdapter.getRemoteDevice("SECTIGIN CIHAZIN ADRESI");
                pairToDevice(mBluetoothDevice);

Seçtiğin cihaza bağlanmak icinde, soket oluşturman gerekli.

 private void pairToDevice(BluetoothDevice nBluetoothDevice) 
{
    Log.v(TAG, "InsidepairToDeviceCalled");
    openSocket(nBluetoothDevice);
    Log.v(TAG, "LeavingpairToDeviceCalled");
}

private void openSocket(BluetoothDevice nBluetoothDevice) 
{
    try 
    {
        Log.v(TAG, "InsideOpenSockedCalled");
        final ProgressDialog dialog = new ProgressDialog(this);
        final ConnectRunnable connector = new ConnectRunnable(nBluetoothDevice, dialog);
        Log.v(TAG, "InsideOpenSockedConnecterCalled");
        ProgressDialog.show(this, "Connecting...", nBluetoothDevice.getName() + " : " + nBluetoothDevice.getAddress(),
            true, true,
            new OnCancelListener() 
        {
                    public void onCancel(DialogInterface dialog) 
                    {
                        connector.cancel();
                    }
                });
        new Thread(connector).start();
    } 
    catch (IOException ex) 
    {
        Log.d(TAG, "Could not open bluetooth socket", ex);
    }
}

private class ConnectRunnable implements Runnable 
{
    private final ProgressDialog dialog;
    private final BluetoothSocket socket;

    public ConnectRunnable(BluetoothDevice device, ProgressDialog dialog) throws IOException 
    {
        socket = device.createRfcommSocketToServiceRecord(applicationUUID);
        this.dialog = dialog;
    }

    public void run() 
    {
        try 
        {
            Log.v(TAG, "InsideRunnableCalled");
            mBluetoothAdapter.cancelDiscovery();
            socket.connect();
            Log.v(TAG, "InsideRunnableSocketConnectCalled");
        }
        catch (IOException connectException) 
        {
            Log.d(TAG, "Could not connect to socket", connectException);
            closeSocket(socket);
            return;
        }
        Log.v(TAG, "Connected");
        dismissDialog(dialog);
        closeSocket(socket);
    }

    public void cancel() 
    {
        try 
        {
            socket.close();
        }
        catch (IOException e) 
        {
            Log.d(TAG, "Canceled connection", e);
        }
    }
}

/////////////Google bluetooth connection döküman. http://developer.android.com/guide/topics/connectivity/bluetooth.html

//Google Bluetooth connection code thread

private class ConnectThread extends Thread {
private final BluetoothSocket mmSocket;
private final BluetoothDevice mmDevice;

public ConnectThread(BluetoothDevice device) {
    // Use a temporary object that is later assigned to mmSocket,
    // because mmSocket is final
    BluetoothSocket tmp = null;
    mmDevice = device;

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

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

    try {
        // Connect the device through the socket. This will block
        // until it succeeds or throws an exception
        mmSocket.connect();
    } catch (IOException connectException) {
        // Unable to connect; close the socket and get out
        try {
            mmSocket.close();
        } catch (IOException closeException) { }
        return;
    }

    // Do work to manage the connection (in a separate thread)
    manageConnectedSocket(mmSocket);
}

/** Will cancel an in-progress connection, and close the socket */
public void cancel() {
    try {
        mmSocket.close();
    } catch (IOException e) { }
}

}

permanent link

cevaplandı: 14 Nis '14, 07:07

evren's gravatar image

evren
5811512
cevap kabul oranı: 33%

Çok teşekkürler. Deneyeceğim.

(14 Nis '14, 08:03) kaptan kaptan's gravatar image

üstteki kodları denedim ama bağlanıyor yazıyor bağlanmıyor maalesef. karşı tarafta da tık yok

(14 Nis '14, 10:04) kaptan kaptan's gravatar image

üstteki kodları denedim ama bağlanıyor yazıyor bağlanmıyor maalesef. karşı tarafta da tık yok.

permanent link

cevaplandı: 14 Nis '14, 10:03

kaptan's gravatar image

kaptan
445334244
cevap kabul oranı: 0%

1

kodlar üzerinde çalışmam olmadığını direk yazı başlığında belirttim, merakımdan dolayı araştırıp bulmuştum, doğrudur benim kodlarım değil, bu hafta içinde iş yoğunluğunun azaldığı bir an olursa kodları inceliyip çalışır halini paylaşmak isterim. bahane ile birşeyler öğrenmiş oluruz

(14 Nis '14, 12:29) evren evren's gravatar image

Teşekkürler. Ben size şimdiki halini de mail atayım isterseniz. vakit bulursanız ondan da bakabilirsiniz.

(15 Nis '14, 03:54) kaptan kaptan's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819
×4

Soruldu: 14 Nis '14, 05:30

Görüntüleme: 2,059 kez

Son güncelleme: 15 Nis '14, 03:54

powered by BitNami OSQA