How to pair Bluetooth device programmatically Android

前端 未结 8 2000
不知归路
不知归路 2020-11-27 12:35

I am developing an application where I want to connect a Bluetooth device main issue is I don\'t want user to enter required pin instead application should do that by himsel

8条回答
  •  悲&欢浪女
    2020-11-27 13:25

    So, I had this question, if someone needs the answer to this working in 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);
    

    And the code for the Receiver.

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

    And in the manifest file.

    
    
    

    And the broadcastReceiver.

     
                    
                        
                        
                    
    
    

提交回复
热议问题