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 ??

  • Abrir archivo html local con el navegador de Android
  • Margen establecido de forma programada en RadioButton no aplicado
  • ¿Cuál es su convención de nomenclatura para los ID de vista?
  • Módulo de la biblioteca de Java de Android Studio vs. Módulo de la biblioteca de Android
  • Cómo cambiar la actividad con el golpe de izquierda a derecha
  • ¿Es posible usar la implementación de VpnService para capturar y enviar paquetes?
  • 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

  • Función similar SwingUtilities.invokeLater en android?
  • Android Studio Error "ruta de salida no se especifica para los módulos"
  • Cómo utilizar runOnUiThread
  • ¿Cifrar la base de datos SQLite sin aumentar el tamaño de la aplicación?
  • R.id.container no resuelto
  • ¿Cuál es el significado de drawable-hdpi, drawable-ldpi, drawable-mdpi, drawable-xhdpi y drawable-xxhdpi
  • 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.