diff options
author | Jaikumar Ganesh <jaikumar@google.com> | 2009-09-11 12:16:19 -0700 |
---|---|---|
committer | Jaikumar Ganesh <jaikumar@google.com> | 2009-09-11 12:16:19 -0700 |
commit | 5e59ca8ae4e29efb77acbd5513dcc109ea5dd2b4 (patch) | |
tree | cc6707b45e6d0507c600181f86dd721748e60c1b /core/jni | |
parent | d304ae583d862250a21b5949fc3dbdf3af1febac (diff) | |
download | frameworks_base-5e59ca8ae4e29efb77acbd5513dcc109ea5dd2b4.zip frameworks_base-5e59ca8ae4e29efb77acbd5513dcc109ea5dd2b4.tar.gz frameworks_base-5e59ca8ae4e29efb77acbd5513dcc109ea5dd2b4.tar.bz2 |
Handle DisconnectRequested message sent by Bluez.
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_server_BluetoothEventLoop.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp index 8fe7487..79a3247 100644 --- a/core/jni/android_server_BluetoothEventLoop.cpp +++ b/core/jni/android_server_BluetoothEventLoop.cpp @@ -45,6 +45,7 @@ static jmethodID method_onDeviceFound; static jmethodID method_onDeviceDisappeared; static jmethodID method_onDeviceCreated; static jmethodID method_onDeviceRemoved; +static jmethodID method_onDeviceDisconnectRequested; static jmethodID method_onCreatePairedDeviceResult; static jmethodID method_onGetDeviceServiceChannelResult; @@ -84,6 +85,8 @@ static void classInitNative(JNIEnv* env, jclass clazz) { "(Ljava/lang/String;)V"); method_onDeviceCreated = env->GetMethodID(clazz, "onDeviceCreated", "(Ljava/lang/String;)V"); method_onDeviceRemoved = env->GetMethodID(clazz, "onDeviceRemoved", "(Ljava/lang/String;)V"); + method_onDeviceDisconnectRequested = env->GetMethodID(clazz, "onDeviceDisconnectRequested", + "(Ljava/lang/String;)V"); method_onCreatePairedDeviceResult = env->GetMethodID(clazz, "onCreatePairedDeviceResult", "(Ljava/lang/String;I)V"); @@ -815,6 +818,14 @@ static DBusHandlerResult event_filter(DBusConnection *conn, DBusMessage *msg, str_array); } else LOG_AND_FREE_DBUS_ERROR_WITH_MSG(&err, msg); goto success; + } else if (dbus_message_is_signal(msg, + "org.bluez.Device", + "DisconnectRequested")) { + const char *remote_device_path = dbus_message_get_path(msg); + env->CallVoidMethod(nat->me, + method_onDeviceDisconnectRequested, + env->NewStringUTF(remote_device_path)); + goto success; } ret = a2dp_event_filter(msg, env); |