diff options
| author | Jaikumar Ganesh <jaikumar@google.com> | 2010-09-13 11:52:19 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-09-13 11:52:19 -0700 |
| commit | 99dcd45efc6c612bf09a0d2e6f50c30d3f0e2d69 (patch) | |
| tree | f7abe461abbfad997f5bda7100d9dec043ece7c2 /framework/java/android/bluetooth/BluetoothAdapter.java | |
| parent | 4b6b4827b6c7825a3b18f9051c262d3c94acb1e8 (diff) | |
| parent | 76965ca62f7b54ca277f06a597373439cc87c311 (diff) | |
am 76965ca6: Out Of Band API for Secure Simple Pairing.
Merge commit '76965ca62f7b54ca277f06a597373439cc87c311' into gingerbread-plus-aosp
* commit '76965ca62f7b54ca277f06a597373439cc87c311':
Out Of Band API for Secure Simple Pairing.
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothAdapter.java')
| -rw-r--r-- | framework/java/android/bluetooth/BluetoothAdapter.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/framework/java/android/bluetooth/BluetoothAdapter.java b/framework/java/android/bluetooth/BluetoothAdapter.java index 03bcadc69b..16a8c571f4 100644 --- a/framework/java/android/bluetooth/BluetoothAdapter.java +++ b/framework/java/android/bluetooth/BluetoothAdapter.java @@ -26,8 +26,10 @@ import android.os.ParcelUuid; import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; +import android.util.Pair; import java.io.IOException; +import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.LinkedList; @@ -863,6 +865,37 @@ public final class BluetoothAdapter { return socket; } + /** + * Read the local Out of Band Pairing Data + * <p>Requires {@link android.Manifest.permission#BLUETOOTH} + * + * @return Pair<byte[], byte[]> of Hash and Randomizer + * + * @hide + */ + public Pair<byte[], byte[]> readOutOfBandData() { + if (getState() != STATE_ON) return null; + try { + byte[] hash = new byte[16]; + byte[] randomizer = new byte[16]; + + byte[] ret = mService.readOutOfBandData(); + + if (ret == null || ret.length != 32) return null; + + hash = Arrays.copyOfRange(ret, 0, 16); + randomizer = Arrays.copyOfRange(ret, 16, 32); + + if (DBG) { + Log.d(TAG, "readOutOfBandData:" + Arrays.toString(hash) + + ":" + Arrays.toString(randomizer)); + } + return new Pair<byte[], byte[]>(hash, randomizer); + + } catch (RemoteException e) {Log.e(TAG, "", e);} + return null; + } + private Set<BluetoothDevice> toDeviceSet(String[] addresses) { Set<BluetoothDevice> devices = new HashSet<BluetoothDevice>(addresses.length); for (int i = 0; i < addresses.length; i++) { |
