Bluetooth Pairing


#1

So my Khadas running Android is a silent device. What I want is that when I send a pairing request to khadas from a different device, Khadas automatically pairs. The problem is when a bluetooth pairing request is sent, a pairing confirmation prompt with pin comes up. I have setup a Broadcast Receiver by googling what can I do, but nothing seems to work the code is : >

private final BroadcastReceiver mPairingRequestReceiver = new BroadcastReceiver()
    {
        public void onReceive(Context context, Intent intent)
        {
            Log.v("BDE", "recieved something!");
            String action = intent.getAction();
            if (action.equals(BluetoothDevice.ACTION_PAIRING_REQUEST))
            {
                try
                {
                    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                    int pin = intent.getIntExtra("android.bluetooth.device.extra.PAIRING_KEY", 1234);
                    //the pin in case you need to accept for an specific pin
                    Log.d(TAG, "Start Auto Pairing. PIN = " + intent.getIntExtra("android.bluetooth.device.extra.PAIRING_KEY", 1234));
                    byte[] pinBytes;
                    pinBytes = ("" + pin).getBytes("UTF-8");
                    device.setPin(pinBytes);
                    //setPairing confirmation if needed
                    device.setPairingConfirmation(true);
                } catch (Exception e)
                {
                    e.printStackTrace();
                    Log.e(TAG, "Error occurs when trying to auto pair");
                    e.printStackTrace();
                }
            }
        }
    };

When I run this code, I get a error “Caused by: java.lang.SecurityException: Need BLUETOOTH PRIVILEGED permission: Neither user 10068 nor current process has android.permission.BLUETOOTH_PRIVILEGED.”

I have added the permission in Android Manifest too and have installed the app as system app too, still it does not work.


#2

Found the Solution, if you have root access and you are installing the app as system app to get the bluetooth_privileged permission. Copy the apk into /system/priv-app instead of /system/app