2

There are similar questions to this here already, but the answers and suggestions relate to older versions of Android. I understand that the bluetooth stack has been completely revised from 4.2 onwards and older solutions do not work anymore.

I have tried all the older solutions to no avail. the use of the private APIs no longer works because they have changed. I dont mind using private APIs but it must work on the newest versions and later (ie API 17+)

I am trying to do the following:

set up a bluetooth pairing between an Android device and an embedded device using legacy PIN pairing without the embedded device being discoverable nor the user having to manually enter the PIN. In fact I want no PIN entry dialog box at all.

The plan is that the two devices have a predefined shared secret PIN, so that I can perform the pairing programmatically and then open an RFCOMM connection between them. All of this without UI. The hardware address of the embedded device is known to the Android program.

There is no security issue here. the project involves just talking to a nearyby, small embedded device through BT as simple as possible.

Ideas that might work on Android 4.2 (Jelly Bean) most welcome, thanks.

1 Answer 1

0

turns out some of the problem was inside the embedded device. on the Android side, the following works:

BluetoothSocket s = null;

    try 
    {
        s = device.createInsecureRfcommSocketToServiceRecord(SerialPortServiceClass_UUID);

    }
    catch (IOException e) 
    {
        Log.e(TAG, "BT connect failed", e);
        return false;
    }

where

private static final UUID SerialPortServiceClass_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.