2015-02-02 8 views
1

Привет всем Я работаю над Bluetooth, и я хочу соединить свое устройство с найденным Bluetooth и подключиться к парному bluetooth.Как подключиться к Bluetooth-устройству в Android?

Я хочу знать, как это сделать. И я также читал о подходе клиентского сервера, в котором мы используем bluetoothserver socket и bluetooth socket и listenUsingRfcommWithServiceRecord и создаем методыRfcommSocketToServiceRecord, в которых мы передаем mac и uuid.

Я хочу знать, где мы используем этот подход и как найти удаленное устройство UUId. Заранее спасибо.

ответ

0

Вам не нужно использовать указанные методы, по крайней мере, для сопряжения устройств.

Пробуйте использовать намерения для пары. Этот код может позволить вам лучше ознакомиться с Bluetooth.

public void pairDevice(BluetoothDevice device) 
{ 
    String ACTION_PAIRING_REQUEST = "android.bluetooth.device.action.PAIRING_REQUEST"; 
    Intent intent = new Intent(ACTION_PAIRING_REQUEST); 
    String EXTRA_DEVICE = "android.bluetooth.device.extra.DEVICE"; 
    intent.putExtra(EXTRA_DEVICE, device); 
    String EXTRA_PAIRING_VARIANT = "android.bluetooth.device.extra.PAIRING_VARIANT"; 
    int PAIRING_VARIANT_PIN = 0; 
    intent.putExtra(EXTRA_PAIRING_VARIANT, PAIRING_VARIANT_PIN); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(intent); 
} 

Intent intent = new Intent(BluetoothDevice.ACTION_PAIRING_REQUEST); 
intent.putExtra(EXTRA_DEVICE, device); 
int PAIRING_VARIANT_PIN = 272; 
intent.putExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, PAIRING_VARIANT_PIN); 
sendBroadcast(intent); 

Intent intent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS); 
startActivityForResult(intent, REQUEST_PAIR_DEVICE); 

Если вы хотите лучший подход о том, как соединить эти спаренные устройства, посмотрите на Bluetooth на AndroidDevelopers:

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) { } 
    } 
} 

Link ресурсы:

http://pastebin.com/N8dR4Aa1

http://developer.android.com/guide/topics/connectivity/bluetooth.html#ConnectingAsAClient

+0

благодарит Мачадо, но после сопряжения с тем, как подключиться к этому устройству и где мы используем эти два метода: подход клиентского сервера? –

+0

Есть несколько полезных документов, а также примеры исходного кода на веб-странице Google Developers. Проверьте отредактированный ответ. – Machado

+0

Я зачитал их, но не смог найти, почему они используются, поэтому, пожалуйста, скажите. –

Смежные вопросы