Loading core/java/android/server/BluetoothEventLoop.java +11 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,17 @@ class BluetoothEventLoop { mContext.sendBroadcast(intent, BLUETOOTH_PERM); } private void onDeviceDisconnectRequested(String deviceObjectPath) { String address = mBluetoothService.getAddressFromObjectPath(deviceObjectPath); if (address == null) { Log.e(TAG, "onDeviceDisconnectRequested: Address of the remote device in null"); return; } Intent intent = new Intent(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED); intent.putExtra(BluetoothDevice.EXTRA_DEVICE, mAdapter.getRemoteDevice(address)); mContext.sendBroadcast(intent, BLUETOOTH_PERM); } private void onCreatePairedDeviceResult(String address, int result) { address = address.toUpperCase(); if (result == BluetoothDevice.BOND_SUCCESS) { Loading core/jni/android_server_BluetoothEventLoop.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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"); Loading Loading @@ -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); Loading Loading
core/java/android/server/BluetoothEventLoop.java +11 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,17 @@ class BluetoothEventLoop { mContext.sendBroadcast(intent, BLUETOOTH_PERM); } private void onDeviceDisconnectRequested(String deviceObjectPath) { String address = mBluetoothService.getAddressFromObjectPath(deviceObjectPath); if (address == null) { Log.e(TAG, "onDeviceDisconnectRequested: Address of the remote device in null"); return; } Intent intent = new Intent(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED); intent.putExtra(BluetoothDevice.EXTRA_DEVICE, mAdapter.getRemoteDevice(address)); mContext.sendBroadcast(intent, BLUETOOTH_PERM); } private void onCreatePairedDeviceResult(String address, int result) { address = address.toUpperCase(); if (result == BluetoothDevice.BOND_SUCCESS) { Loading
core/jni/android_server_BluetoothEventLoop.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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"); Loading Loading @@ -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); Loading