am 7ff269f3: Merge change 24735 into eclair
Merge commit '7ff269f359a8848fd0c39993d8fe21a8324806f9' into eclair-plus-aosp * commit '7ff269f359a8848fd0c39993d8fe21a8324806f9': Handle DisconnectRequested message sent by Bluez.
This commit is contained in:
@@ -166,6 +166,17 @@ class BluetoothEventLoop {
|
|||||||
mContext.sendBroadcast(intent, BLUETOOTH_PERM);
|
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) {
|
private void onCreatePairedDeviceResult(String address, int result) {
|
||||||
address = address.toUpperCase();
|
address = address.toUpperCase();
|
||||||
if (result == BluetoothDevice.BOND_SUCCESS) {
|
if (result == BluetoothDevice.BOND_SUCCESS) {
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ static jmethodID method_onDeviceFound;
|
|||||||
static jmethodID method_onDeviceDisappeared;
|
static jmethodID method_onDeviceDisappeared;
|
||||||
static jmethodID method_onDeviceCreated;
|
static jmethodID method_onDeviceCreated;
|
||||||
static jmethodID method_onDeviceRemoved;
|
static jmethodID method_onDeviceRemoved;
|
||||||
|
static jmethodID method_onDeviceDisconnectRequested;
|
||||||
|
|
||||||
static jmethodID method_onCreatePairedDeviceResult;
|
static jmethodID method_onCreatePairedDeviceResult;
|
||||||
static jmethodID method_onGetDeviceServiceChannelResult;
|
static jmethodID method_onGetDeviceServiceChannelResult;
|
||||||
@@ -84,6 +85,8 @@ static void classInitNative(JNIEnv* env, jclass clazz) {
|
|||||||
"(Ljava/lang/String;)V");
|
"(Ljava/lang/String;)V");
|
||||||
method_onDeviceCreated = env->GetMethodID(clazz, "onDeviceCreated", "(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_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",
|
method_onCreatePairedDeviceResult = env->GetMethodID(clazz, "onCreatePairedDeviceResult",
|
||||||
"(Ljava/lang/String;I)V");
|
"(Ljava/lang/String;I)V");
|
||||||
@@ -815,6 +818,14 @@ static DBusHandlerResult event_filter(DBusConnection *conn, DBusMessage *msg,
|
|||||||
str_array);
|
str_array);
|
||||||
} else LOG_AND_FREE_DBUS_ERROR_WITH_MSG(&err, msg);
|
} else LOG_AND_FREE_DBUS_ERROR_WITH_MSG(&err, msg);
|
||||||
goto success;
|
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);
|
ret = a2dp_event_filter(msg, env);
|
||||||
|
|||||||
Reference in New Issue
Block a user