diff options
author | Jaikumar Ganesh <jaikumar@google.com> | 2009-07-17 14:45:22 -0700 |
---|---|---|
committer | Jaikumar Ganesh <jaikumar@google.com> | 2009-07-17 14:45:22 -0700 |
commit | 12cae39747c49e2886bcfbac9ec42094bdb32209 (patch) | |
tree | 634b107d861e88309abbaa2ea57542c0304c75ae /core | |
parent | 7ff6b74cf275fad0c0ee7929fb9cd1d6dc116299 (diff) | |
download | frameworks_base-12cae39747c49e2886bcfbac9ec42094bdb32209.zip frameworks_base-12cae39747c49e2886bcfbac9ec42094bdb32209.tar.gz frameworks_base-12cae39747c49e2886bcfbac9ec42094bdb32209.tar.bz2 |
Revert "Initial support of 2.1 pairing."
This reverts commit 228b2f3a813e93413a0f9e2f29dfbfc54590a356.
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/bluetooth/BluetoothDevice.java | 27 | ||||
-rw-r--r-- | core/java/android/bluetooth/BluetoothIntent.java | 4 | ||||
-rw-r--r-- | core/java/android/bluetooth/IBluetoothDevice.aidl | 5 | ||||
-rw-r--r-- | core/java/android/server/BluetoothDeviceService.java | 46 | ||||
-rw-r--r-- | core/java/android/server/BluetoothEventLoop.java | 49 | ||||
-rw-r--r-- | core/jni/android_server_BluetoothDeviceService.cpp | 73 | ||||
-rw-r--r-- | core/jni/android_server_BluetoothEventLoop.cpp | 38 |
7 files changed, 23 insertions, 219 deletions
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java index a64c6d7..c942a27 100644 --- a/core/java/android/bluetooth/BluetoothDevice.java +++ b/core/java/android/bluetooth/BluetoothDevice.java @@ -74,14 +74,6 @@ public class BluetoothDevice { /** An existing bond was explicitly revoked */ public static final int UNBOND_REASON_REMOVED = 6; - /* The user will be prompted to enter a pin */ - public static final int PAIRING_VARIANT_PIN = 0; - /* The user will be prompted to enter a passkey */ - public static final int PAIRING_VARIANT_PASSKEY = 1; - /* The user will be prompted to confirm the passkey displayed on the screen */ - public static final int PAIRING_VARIANT_CONFIRMATION = 2; - - private static final String TAG = "BluetoothDevice"; private final IBluetoothDevice mService; @@ -366,24 +358,9 @@ public class BluetoothDevice { } catch (RemoteException e) {Log.e(TAG, "", e);} return false; } - - public boolean setPasskey(String address, int passkey) { - try { - return mService.setPasskey(address, passkey); - } catch (RemoteException e) {Log.e(TAG, "", e);} - return false; - } - - public boolean setPairingConfirmation(String address, boolean confirm) { - try { - return mService.setPairingConfirmation(address, confirm); - } catch (RemoteException e) {Log.e(TAG, "", e);} - return false; - } - - public boolean cancelPairingUserInput(String address) { + public boolean cancelPin(String address) { try { - return mService.cancelPairingUserInput(address); + return mService.cancelPin(address); } catch (RemoteException e) {Log.e(TAG, "", e);} return false; } diff --git a/core/java/android/bluetooth/BluetoothIntent.java b/core/java/android/bluetooth/BluetoothIntent.java index d6c79b4..344601b 100644 --- a/core/java/android/bluetooth/BluetoothIntent.java +++ b/core/java/android/bluetooth/BluetoothIntent.java @@ -57,10 +57,6 @@ public interface BluetoothIntent { "android.bluetooth.intent.BOND_PREVIOUS_STATE"; public static final String REASON = "android.bluetooth.intent.REASON"; - public static final String PAIRING_VARIANT = - "android.bluetooth.intent.PAIRING_VARIANT"; - public static final String PASSKEY = - "android.bluetooth.intent.PASSKEY"; /** Broadcast when the local Bluetooth device state changes, for example * when Bluetooth is enabled. Will contain int extra's BLUETOOTH_STATE and diff --git a/core/java/android/bluetooth/IBluetoothDevice.aidl b/core/java/android/bluetooth/IBluetoothDevice.aidl index a78752b..c249c81 100644 --- a/core/java/android/bluetooth/IBluetoothDevice.aidl +++ b/core/java/android/bluetooth/IBluetoothDevice.aidl @@ -54,8 +54,5 @@ interface IBluetoothDevice int getRemoteServiceChannel(in String address, String uuid); boolean setPin(in String address, in byte[] pin); - boolean setPasskey(in String address, int passkey); - boolean setPairingConfirmation(in String address, boolean confirm); - boolean cancelPairingUserInput(in String address); - + boolean cancelPin(in String address); } diff --git a/core/java/android/server/BluetoothDeviceService.java b/core/java/android/server/BluetoothDeviceService.java index b780f41..13d980d 100644 --- a/core/java/android/server/BluetoothDeviceService.java +++ b/core/java/android/server/BluetoothDeviceService.java @@ -959,38 +959,7 @@ public class BluetoothDeviceService extends IBluetoothDevice.Stub { return setPinNative(address, pinString, data.intValue()); } - public synchronized boolean setPasskey(String address, int passkey) { - mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, - "Need BLUETOOTH_ADMIN permission"); - if (passkey < 0 || passkey > 999999 || !BluetoothDevice.checkBluetoothAddress(address)) { - return false; - } - address = address.toUpperCase(); - Integer data = mEventLoop.getPasskeyAgentRequestData().remove(address); - if (data == null) { - Log.w(TAG, "setPasskey(" + address + ") called but no native data available, " + - "ignoring. Maybe the PasskeyAgent Request was cancelled by the remote device" + - " or by bluez.\n"); - return false; - } - return setPasskeyNative(address, passkey, data.intValue()); - } - - public synchronized boolean setPairingConfirmation(String address, boolean confirm) { - mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, - "Need BLUETOOTH_ADMIN permission"); - address = address.toUpperCase(); - Integer data = mEventLoop.getPasskeyAgentRequestData().remove(address); - if (data == null) { - Log.w(TAG, "setPasskey(" + address + ") called but no native data available, " + - "ignoring. Maybe the PasskeyAgent Request was cancelled by the remote device" + - " or by bluez.\n"); - return false; - } - return setPairingConfirmationNative(address, confirm, data.intValue()); - } - - public synchronized boolean cancelPairingUserInput(String address) { + public synchronized boolean cancelPin(String address) { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); if (!BluetoothDevice.checkBluetoothAddress(address)) { @@ -999,12 +968,12 @@ public class BluetoothDeviceService extends IBluetoothDevice.Stub { address = address.toUpperCase(); Integer data = mEventLoop.getPasskeyAgentRequestData().remove(address); if (data == null) { - Log.w(TAG, "cancelUserInputNative(" + address + ") called but no native data " + - "available, ignoring. Maybe the PasskeyAgent Request was already cancelled " + - "by the remote or by bluez.\n"); + Log.w(TAG, "cancelPin(" + address + ") called but no native data available, " + + "ignoring. Maybe the PasskeyAgent Request was already cancelled by the remote " + + "or by bluez.\n"); return false; } - return cancelPairingUserInputNative(address, data.intValue()); + return cancelPinNative(address, data.intValue()); } private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @@ -1191,10 +1160,7 @@ public class BluetoothDeviceService extends IBluetoothDevice.Stub { private native int getDeviceServiceChannelNative(String objectPath, String uuid, int attributeId); - private native boolean cancelPairingUserInputNative(String address, int nativeData); + private native boolean cancelPinNative(String address, int nativeData); private native boolean setPinNative(String address, String pin, int nativeData); - private native boolean setPasskeyNative(String address, int passkey, int nativeData); - private native boolean setPairingConfirmationNative(String address, boolean confirm, - int nativeData); } diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index dc84d1f..76906b6 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -317,53 +317,23 @@ class BluetoothEventLoop { } mBluetoothService.setRemoteDeviceProperty(address, name, uuid); } + } - private String checkPairingRequestAndGetAddress(String objectPath, int nativeData) { + private void onRequestPinCode(String objectPath, int nativeData) { String address = mBluetoothService.getAddressFromObjectPath(objectPath); if (address == null) { - Log.e(TAG, "Unable to get device address in checkPairingRequestAndGetAddress, " + - "returning null"); - return null; + Log.e(TAG, "Unable to get device address in onRequestPinCode, returning null"); + return; } address = address.toUpperCase(); mPasskeyAgentRequestData.put(address, new Integer(nativeData)); if (mBluetoothService.getBluetoothState() == BluetoothDevice.BLUETOOTH_STATE_TURNING_OFF) { // shutdown path - mBluetoothService.cancelPairingUserInput(address); - return null; + mBluetoothService.cancelPin(address); + return; } - return address; - } - - private void onRequestConfirmation(String objectPath, int passkey, int nativeData) { - String address = checkPairingRequestAndGetAddress(objectPath, nativeData); - if (address == null) return; - - Intent intent = new Intent(BluetoothIntent.PAIRING_REQUEST_ACTION); - intent.putExtra(BluetoothIntent.ADDRESS, address); - intent.putExtra(BluetoothIntent.PASSKEY, passkey); - intent.putExtra(BluetoothIntent.PAIRING_VARIANT, - BluetoothDevice.PAIRING_VARIANT_CONFIRMATION); - mContext.sendBroadcast(intent, BLUETOOTH_ADMIN_PERM); - return; - } - - private void onRequestPasskey(String objectPath, int nativeData) { - String address = checkPairingRequestAndGetAddress(objectPath, nativeData); - if (address == null) return; - - Intent intent = new Intent(BluetoothIntent.PAIRING_REQUEST_ACTION); - intent.putExtra(BluetoothIntent.ADDRESS, address); - intent.putExtra(BluetoothIntent.PAIRING_VARIANT, BluetoothDevice.PAIRING_VARIANT_PASSKEY); - mContext.sendBroadcast(intent, BLUETOOTH_ADMIN_PERM); - return; - } - - private void onRequestPinCode(String objectPath, int nativeData) { - String address = checkPairingRequestAndGetAddress(objectPath, nativeData); - if (address == null) return; if (mBluetoothService.getBondState().getBondState(address) == BluetoothDevice.BOND_BONDING) { @@ -388,7 +358,6 @@ class BluetoothEventLoop { } Intent intent = new Intent(BluetoothIntent.PAIRING_REQUEST_ACTION); intent.putExtra(BluetoothIntent.ADDRESS, address); - intent.putExtra(BluetoothIntent.PAIRING_VARIANT, BluetoothDevice.PAIRING_VARIANT_PIN); mContext.sendBroadcast(intent, BLUETOOTH_ADMIN_PERM); return; } @@ -417,9 +386,9 @@ class BluetoothEventLoop { } private void onAgentCancel() { - Intent intent = new Intent(BluetoothIntent.PAIRING_CANCEL_ACTION); - mContext.sendBroadcast(intent, BLUETOOTH_ADMIN_PERM); - return; + // We immediately response to DBUS Authorize() so this should not + // usually happen + log("onAgentCancel"); } private void onRestartRequired() { diff --git a/core/jni/android_server_BluetoothDeviceService.cpp b/core/jni/android_server_BluetoothDeviceService.cpp index 444e628..b02a19b 100644 --- a/core/jni/android_server_BluetoothDeviceService.cpp +++ b/core/jni/android_server_BluetoothDeviceService.cpp @@ -437,65 +437,6 @@ static jint isEnabledNative(JNIEnv *env, jobject object) { return -1; } -static jboolean setPairingConfirmationNative(JNIEnv *env, jobject object, - jstring address, bool confirm, - int nativeData) { -#ifdef HAVE_BLUETOOTH - LOGV(__FUNCTION__); - native_data_t *nat = get_native_data(env, object); - if (nat) { - DBusMessage *msg = (DBusMessage *)nativeData; - DBusMessage *reply; - if (confirm) { - reply = dbus_message_new_method_return(msg); - } else { - reply = dbus_message_new_error(msg, - "org.bluez.Error.Rejected", "User rejected confirmation"); - } - - if (!reply) { - LOGE("%s: Cannot create message reply to RequestConfirmation to " - "D-Bus\n", __FUNCTION__); - dbus_message_unref(msg); - return JNI_FALSE; - } - - dbus_connection_send(nat->conn, reply, NULL); - dbus_message_unref(msg); - dbus_message_unref(reply); - return JNI_TRUE; - } -#endif - return JNI_FALSE; -} - -static jboolean setPasskeyNative(JNIEnv *env, jobject object, jstring address, - int passkey, int nativeData) { -#ifdef HAVE_BLUETOOTH - LOGV(__FUNCTION__); - native_data_t *nat = get_native_data(env, object); - if (nat) { - DBusMessage *msg = (DBusMessage *)nativeData; - DBusMessage *reply = dbus_message_new_method_return(msg); - if (!reply) { - LOGE("%s: Cannot create message reply to return Passkey code to " - "D-Bus\n", __FUNCTION__); - dbus_message_unref(msg); - return JNI_FALSE; - } - - dbus_message_append_args(reply, DBUS_TYPE_UINT32, (uint32_t *)&passkey, - DBUS_TYPE_INVALID); - - dbus_connection_send(nat->conn, reply, NULL); - dbus_message_unref(msg); - dbus_message_unref(reply); - return JNI_TRUE; - } -#endif - return JNI_FALSE; -} - static jboolean setPinNative(JNIEnv *env, jobject object, jstring address, jstring pin, int nativeData) { #ifdef HAVE_BLUETOOTH @@ -526,17 +467,17 @@ static jboolean setPinNative(JNIEnv *env, jobject object, jstring address, return JNI_FALSE; } -static jboolean cancelPairingUserInputNative(JNIEnv *env, jobject object, - jstring address, int nativeData) { +static jboolean cancelPinNative(JNIEnv *env, jobject object, jstring address, + int nativeData) { #ifdef HAVE_BLUETOOTH LOGV(__FUNCTION__); native_data_t *nat = get_native_data(env, object); if (nat) { DBusMessage *msg = (DBusMessage *)nativeData; DBusMessage *reply = dbus_message_new_error(msg, - "org.bluez.Error.Canceled", "Pairing User Input was canceled"); + "org.bluez.Error.Canceled", "PIN Entry was canceled"); if (!reply) { - LOGE("%s: Cannot create message reply to return cancelUserInput to" + LOGE("%s: Cannot create message reply to return PIN cancel to " "D-BUS\n", __FUNCTION__); dbus_message_unref(msg); return JNI_FALSE; @@ -724,12 +665,8 @@ static JNINativeMethod sMethods[] = { {"getDeviceServiceChannelNative", "(Ljava/lang/String;Ljava/lang/String;I)I", (void *)getDeviceServiceChannelNative}, - {"setPairingConfirmationNative", "(Ljava/lang/String;ZI)Z", - (void *)setPairingConfirmationNative}, - {"setPasskeyNative", "(Ljava/lang/String;II)Z", (void *)setPasskeyNative}, {"setPinNative", "(Ljava/lang/String;Ljava/lang/String;I)Z", (void *)setPinNative}, - {"cancelPairingUserInputNative", "(Ljava/lang/String;I)Z", - (void *)cancelPairingUserInputNative}, + {"cancelPinNative", "(Ljava/lang/String;I)Z", (void *)cancelPinNative}, }; int register_android_server_BluetoothDeviceService(JNIEnv *env) { diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp index 4a13e80..0857cb3 100644 --- a/core/jni/android_server_BluetoothEventLoop.cpp +++ b/core/jni/android_server_BluetoothEventLoop.cpp @@ -50,8 +50,6 @@ static jmethodID method_onCreatePairedDeviceResult; static jmethodID method_onGetDeviceServiceChannelResult; static jmethodID method_onRequestPinCode; -static jmethodID method_onRequestPasskey; -static jmethodID method_onRequestConfirmation; static jmethodID method_onAgentAuthorize; static jmethodID method_onAgentCancel; @@ -91,10 +89,6 @@ static void classInitNative(JNIEnv* env, jclass clazz) { method_onAgentCancel = env->GetMethodID(clazz, "onAgentCancel", "()V"); method_onRequestPinCode = env->GetMethodID(clazz, "onRequestPinCode", "(Ljava/lang/String;I)V"); - method_onRequestPasskey = env->GetMethodID(clazz, "onRequestPasskey", - "(Ljava/lang/String;I)V"); - method_onRequestConfirmation = env->GetMethodID(clazz, "onRequestConfirmation", - "(Ljava/lang/String;II)V"); field_mNativeData = env->GetFieldID(clazz, "mNativeData", "I"); #endif @@ -878,38 +872,6 @@ DBusHandlerResult agent_event_filter(DBusConnection *conn, int(msg)); return DBUS_HANDLER_RESULT_HANDLED; } else if (dbus_message_is_method_call(msg, - "org.bluez.Agent", "RequestPasskey")) { - char *object_path; - if (!dbus_message_get_args(msg, NULL, - DBUS_TYPE_OBJECT_PATH, &object_path, - DBUS_TYPE_INVALID)) { - LOGE("%s: Invalid arguments for RequestPasskey() method", __FUNCTION__); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - dbus_message_ref(msg); // increment refcount because we pass to java - env->CallVoidMethod(nat->me, method_onRequestPasskey, - env->NewStringUTF(object_path), - int(msg)); - } else if (dbus_message_is_method_call(msg, - "org.bluez.Agent", "RequestConfirmation")) { - char *object_path; - uint32_t passkey; - if (!dbus_message_get_args(msg, NULL, - DBUS_TYPE_OBJECT_PATH, &object_path, - DBUS_TYPE_UINT32, &passkey, - DBUS_TYPE_INVALID)) { - LOGE("%s: Invalid arguments for RequestConfirmation() method", __FUNCTION__); - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - dbus_message_ref(msg); // increment refcount because we pass to java - env->CallVoidMethod(nat->me, method_onRequestConfirmation, - env->NewStringUTF(object_path), - passkey, - int(msg)); - return DBUS_HANDLER_RESULT_HANDLED; - } else if (dbus_message_is_method_call(msg, "org.bluez.Agent", "Release")) { // reply DBusMessage *reply = dbus_message_new_method_return(msg); |