diff options
author | Lixin Yue <L.X.YUE@motorola.com> | 2009-08-31 15:55:13 +0800 |
---|---|---|
committer | Jaikumar Ganesh <jaikumar@google.com> | 2009-09-01 13:58:31 -0700 |
commit | efa1dd716da3372cc74a201d11de5e0ef1a9fe9a (patch) | |
tree | 4a85961d253f463196bc110f18a2cf022030007a /core/java/android/server | |
parent | 5e2a385c0d95f4a99dd8c562c6d2d79aa8546030 (diff) | |
download | frameworks_base-efa1dd716da3372cc74a201d11de5e0ef1a9fe9a.zip frameworks_base-efa1dd716da3372cc74a201d11de5e0ef1a9fe9a.tar.gz frameworks_base-efa1dd716da3372cc74a201d11de5e0ef1a9fe9a.tar.bz2 |
Add Bluetooth Device trust
Diffstat (limited to 'core/java/android/server')
-rw-r--r-- | core/java/android/server/BluetoothEventLoop.java | 5 | ||||
-rw-r--r-- | core/java/android/server/BluetoothService.java | 37 |
2 files changed, 42 insertions, 0 deletions
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index 79a7cf8..8cef3a2 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -347,7 +347,12 @@ class BluetoothEventLoop { } else { mBluetoothService.getBondState().setBondState(address, BluetoothDevice.BOND_NOT_BONDED); + mBluetoothService.setRemoteDeviceProperty(address, "Trusted", "false"); } + } else if (name.equals("Trusted")) { + if (DBG) + log("set trust state succeded, value is " + propValues[1]); + mBluetoothService.setRemoteDeviceProperty(address, name, propValues[1]); } } diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java index 21104c8..b168850 100644 --- a/core/java/android/server/BluetoothService.java +++ b/core/java/android/server/BluetoothService.java @@ -885,6 +885,42 @@ public class BluetoothService extends IBluetooth.Stub { } /** + * Sets the remote device trust state. + * + * @return boolean to indicate operation success or fail + */ + public synchronized boolean setTrust(String address, boolean value) { + if (!BluetoothDevice.checkBluetoothAddress(address)) { + mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + return false; + } + + return setDevicePropertyBooleanNative(getObjectPathFromAddress(address), "Trusted", + value ? 1 : 0); + } + + /** + * Gets the remote device trust state as boolean. + * Note: this value may be + * retrieved from cache if we retrieved the data before * + * + * @return boolean to indicate trust or untrust state + */ + public synchronized boolean getTrustState(String address) { + if (!BluetoothDevice.checkBluetoothAddress(address)) { + mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); + return false; + } + + String val = getRemoteDeviceProperty(address, "Trusted"); + if (val == null) { + return false; + } else { + return val.equals("true") ? true : false; + } + } + + /** * Gets the remote major, minor classes encoded as a 32-bit * integer. * @@ -1220,5 +1256,6 @@ public class BluetoothService extends IBluetooth.Stub { private native boolean setPasskeyNative(String address, int passkey, int nativeData); private native boolean setPairingConfirmationNative(String address, boolean confirm, int nativeData); + private native boolean setDevicePropertyBooleanNative(String objectPath, String key, int value); } |