Search code examples
androidgoogle-glassandroid-bluetoothgoogle-gdk

rfcomm bluetooth on google glass


I am having an Android-App [1] which I partly want to port to google-glass - this app uses bluetooth rfcomm. Now I am facing the following problem: when I use my connection code I see a pairing dialog on glass - showing me a large number and asks for a tap to confirm. But this is strange - as I usually have to enter my 4 digit pin on the phone - also I am getting auth problems ( smells like it is caused by not letting me enter the PIN ) Anyone using bluetooth-rfcomm on google-glass?

[1] https://github.com/ligi/DUBwise


Solution

  • I was having the exact problem like this! In this post I put my complete solution to this problem.

    But basically the pairing is done like this:

    In the BroadcastReceiver

        if(BluetoothDevice.ACTION_PAIRING_REQUEST.equals(action)){
            BluetoothDevice device = ListDev.get(selectedDevice);
            byte[] pinBytes = getStrFromName(device.getName(),7,11).getBytes();  // My devices had their own pin in their name, you can put a constant pin here or ask for one...  
            try {
                Method m = device.getClass().getMethod("setPin", byte[].class);
                m.invoke(device, pinBytes);
                try {
                    device.getClass().getMethod("setPairingConfirmation", boolean.class).invoke(device, true);
                } catch (Exception e) {
                    e.printStackTrace();
                } 
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    So the pin is set automatically in this example, but you can always ask for a pin to the user.

    Hope it helps!