From 5ec09727f44d7f284031e0cad2c96c21b2a8399e Mon Sep 17 00:00:00 2001 From: "hyungseoung.yoo" Date: Fri, 5 Aug 2011 23:01:56 -0700 Subject: [PATCH] Bluetooth : fix for bluetooth turning on issue.(limit: 64times) Bluetooth fails to turn on after 64 iterations. When setUpEventLoop is called, Adapter is not ready yet. However, we have already added the Dbus match rules. These match rules are not deleted and we hit the dbus limit. Change-Id: If207d4d33574685520a852b53a641adfbeb45d43 Author: hyungseoung.yoo --- core/jni/android_server_BluetoothEventLoop.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp index 8f84b810d3dc0..45b7f27d709cb 100644 --- a/core/jni/android_server_BluetoothEventLoop.cpp +++ b/core/jni/android_server_BluetoothEventLoop.cpp @@ -229,6 +229,13 @@ static jboolean setUpEventLoop(native_data_t *nat) { DBusError err; dbus_error_init(&err); + const char *agent_path = "/android/bluetooth/agent"; + const char *capabilities = "DisplayYesNo"; + if (register_agent(nat, agent_path, capabilities) < 0) { + dbus_connection_unregister_object_path (nat->conn, agent_path); + return JNI_FALSE; + } + // Add a filter for all incoming messages if (!dbus_connection_add_filter(nat->conn, event_filter, nat, NULL)){ return JNI_FALSE; @@ -294,12 +301,6 @@ static jboolean setUpEventLoop(native_data_t *nat) { return JNI_FALSE; } - const char *agent_path = "/android/bluetooth/agent"; - const char *capabilities = "DisplayYesNo"; - if (register_agent(nat, agent_path, capabilities) < 0) { - dbus_connection_unregister_object_path (nat->conn, agent_path); - return JNI_FALSE; - } return JNI_TRUE; } return JNI_FALSE;