Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo asociar un dispositivo Bluetooth mediante programación a Android

Estoy desarrollando una aplicación donde quiero conectar un dispositivo Bluetooth principal problema es que no quiero que el usuario introduzca el pin necesario en lugar de aplicación debe hacer eso por sí mismo … No tengo ningún problema relacionado con la conexión … Sólo quiero Para insertar y completar el proceso de autenticación de pin mediante la propia aplicación.

Encontré el siguiente código Estoy seguro de que está trabajando, pero no estoy seguro de cómo agregar pin en este código ??

private void pairDevice(BluetoothDevice device) { try { Log.d("pairDevice()", "Start Pairing..."); Method m = device.getClass().getMethod("createBond", (Class[]) null); m.invoke(device, (Object[]) null); Log.d("pairDevice()", "Pairing finished."); } catch (Exception e) { Log.e("pairDevice()", e.getMessage()); } } 

¿Alguien sabe cómo introducir pin en el código anterior o cualquier código similar para resolver el problema .. Gracias

  • El descubrimiento de servicio falló la excepción utilizando Bluetooth en Android
  • Android Broadcast Receiver eventos bluetooth captura
  • Lectura de los valores del adaptador OBD II Bluetooth en la aplicación android
  • Transferencia de archivos Bluetooth
  • Enrutamiento de audio a auriculares Bluetooth (no A2DP) en Android
  • Android: ¿cómo puedo navegar por el sistema de archivos de dispositivo remoto a través de bluetooth?
  • BluetoothSocket.connect () excepción de lanzamiento "error de lectura"
  • Desactivar el modo Bluetooth detectable en Android
  • 4 Solutions collect form web for “Cómo asociar un dispositivo Bluetooth mediante programación a Android”

    ¿Cómo puedo evitar o descartar la notificación de sincronización Bluetooth de Android cuando hago emparejamiento programático?

    Esto parece darle la respuesta, con el pin que entra y todo. Se trata de enviar .setPin () siempre que reciba el mensaje.

    Por lo tanto, tuve esta pregunta, si alguien necesita la respuesta a este trabajo en android 4.4.2.

      IntentFilter filter = new IntentFilter( "android.bluetooth.device.action.PAIRING_REQUEST"); /* * Registering a new BTBroadcast receiver from the Main Activity context * with pairing request event */ registerReceiver( new PairingRequest(), filter); 

    Y el código para el receptor.

      public static class PairingRequest extends BroadcastReceiver { public PairingRequest() { super(); } @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.bluetooth.device.action.PAIRING_REQUEST")) { try { BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); int pin=intent.getIntExtra("android.bluetooth.device.extra.PAIRING_KEY", 0); //the pin in case you need to accept for an specific pin Log.d("PIN", " " + intent.getIntExtra("android.bluetooth.device.extra.PAIRING_KEY",0)); //maybe you look for a name or address Log.d("Bonded", device.getName()); byte[] pinBytes; pinBytes = (""+pin).getBytes("UTF-8"); device.setPin(pinBytes); //setPairing confirmation if neeeded device.setPairingConfirmation(true); } catch (Exception e) { e.printStackTrace(); } } } } 

    Y en el archivo de manifiesto.

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

    Y el receptor de radiodifusión.

      <receiver android:name=".MainActivity$PairingRequest"> <intent-filter> <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" /> <action android:name="android.bluetooth.device.action.PAIRING_CANCEL" /> </intent-filter> </receiver> 

    Pruebe este código:

     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); 

    espero que esto ayude

    Referencia: http://pastebin.com/N8dR4Aa1

    Prueba esto,

     BluetoothDevice device = intent.getParcelableExtra("android.bluetooth.device.extra.DEVICE"); device.getClass().getMethod("setPairingConfirmation", boolean.class).invoke(device, true); device.getClass().getMethod("cancelPairingUserInput", boolean.class).invoke(device); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.