Loading android/app/jni/com_android_bluetooth_btservice_AdapterService.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -1469,7 +1469,7 @@ static jboolean setDevicePropertyNative(JNIEnv* env, jobject obj, } static jboolean getRemoteServicesNative(JNIEnv* env, jobject obj, jbyteArray address) { jbyteArray address, jint transport) { ALOGV("%s", __func__); if (!sBluetoothInterface) return JNI_FALSE; Loading @@ -1480,7 +1480,8 @@ static jboolean getRemoteServicesNative(JNIEnv* env, jobject obj, return JNI_FALSE; } int ret = sBluetoothInterface->get_remote_services((RawAddress*)addr); int ret = sBluetoothInterface->get_remote_services((RawAddress*)addr, transport); env->ReleaseByteArrayElements(address, addr, 0); return (ret == BT_STATUS_SUCCESS) ? JNI_TRUE : JNI_FALSE; } Loading Loading @@ -1713,7 +1714,7 @@ static JNINativeMethod sMethods[] = { {"getConnectionStateNative", "([B)I", (void*)getConnectionStateNative}, {"pinReplyNative", "([BZI[B)Z", (void*)pinReplyNative}, {"sspReplyNative", "([BIZI)Z", (void*)sspReplyNative}, {"getRemoteServicesNative", "([B)Z", (void*)getRemoteServicesNative}, {"getRemoteServicesNative", "([BI)Z", (void*)getRemoteServicesNative}, {"alarmFiredNative", "()V", (void*)alarmFiredNative}, {"readEnergyInfo", "()I", (void*)readEnergyInfo}, {"dumpNative", "(Ljava/io/FileDescriptor;[Ljava/lang/String;)V", Loading android/app/src/com/android/bluetooth/btservice/AdapterService.java +10 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.bluetooth.btservice; import static android.bluetooth.BluetoothDevice.TRANSPORT_AUTO; import static com.android.bluetooth.Utils.addressToBytes; import static com.android.bluetooth.Utils.callerIsSystemOrActiveOrManagedUser; import static com.android.bluetooth.Utils.callerIsSystemOrActiveUser; Loading Loading @@ -1766,15 +1768,18 @@ public class AdapterService extends Service { } @Override public boolean fetchRemoteUuids(BluetoothDevice device) { public boolean fetchRemoteUuids(BluetoothDevice device, int transport) { AdapterService service = getService(); if (service == null || !callerIsSystemOrActiveOrManagedUser(service, TAG, "fetchRemoteUuids")) { return false; } if (transport != TRANSPORT_AUTO) { enforceBluetoothPrivilegedPermission(service); } else { enforceBluetoothPermission(service); } service.mRemoteDevices.fetchUuids(device); service.mRemoteDevices.fetchUuids(device, transport); return true; } Loading Loading @@ -3568,7 +3573,7 @@ public class AdapterService extends Service { private native boolean sspReplyNative(byte[] address, int type, boolean accept, int passkey); /*package*/ native boolean getRemoteServicesNative(byte[] address); native boolean getRemoteServicesNative(byte[] address, int transport); /*package*/ native boolean getRemoteMasInstancesNative(byte[] address); Loading android/app/src/com/android/bluetooth/btservice/RemoteDevices.java +3 −2 Original line number Diff line number Diff line Loading @@ -692,7 +692,7 @@ final class RemoteDevices { } void fetchUuids(BluetoothDevice device) { void fetchUuids(BluetoothDevice device, int transport) { if (sSdpTracker.contains(device)) { return; } Loading @@ -712,7 +712,8 @@ final class RemoteDevices { // Uses cached UUIDs if we are bonding. If not, we fetch the UUIDs with SDP. if (deviceProperties == null || !deviceProperties.isBonding()) { sAdapterService.getRemoteServicesNative(Utils.getBytesFromAddress(device.getAddress())); sAdapterService.getRemoteServicesNative(Utils.getBytesFromAddress(device.getAddress()), transport); } } Loading Loading
android/app/jni/com_android_bluetooth_btservice_AdapterService.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -1469,7 +1469,7 @@ static jboolean setDevicePropertyNative(JNIEnv* env, jobject obj, } static jboolean getRemoteServicesNative(JNIEnv* env, jobject obj, jbyteArray address) { jbyteArray address, jint transport) { ALOGV("%s", __func__); if (!sBluetoothInterface) return JNI_FALSE; Loading @@ -1480,7 +1480,8 @@ static jboolean getRemoteServicesNative(JNIEnv* env, jobject obj, return JNI_FALSE; } int ret = sBluetoothInterface->get_remote_services((RawAddress*)addr); int ret = sBluetoothInterface->get_remote_services((RawAddress*)addr, transport); env->ReleaseByteArrayElements(address, addr, 0); return (ret == BT_STATUS_SUCCESS) ? JNI_TRUE : JNI_FALSE; } Loading Loading @@ -1713,7 +1714,7 @@ static JNINativeMethod sMethods[] = { {"getConnectionStateNative", "([B)I", (void*)getConnectionStateNative}, {"pinReplyNative", "([BZI[B)Z", (void*)pinReplyNative}, {"sspReplyNative", "([BIZI)Z", (void*)sspReplyNative}, {"getRemoteServicesNative", "([B)Z", (void*)getRemoteServicesNative}, {"getRemoteServicesNative", "([BI)Z", (void*)getRemoteServicesNative}, {"alarmFiredNative", "()V", (void*)alarmFiredNative}, {"readEnergyInfo", "()I", (void*)readEnergyInfo}, {"dumpNative", "(Ljava/io/FileDescriptor;[Ljava/lang/String;)V", Loading
android/app/src/com/android/bluetooth/btservice/AdapterService.java +10 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.bluetooth.btservice; import static android.bluetooth.BluetoothDevice.TRANSPORT_AUTO; import static com.android.bluetooth.Utils.addressToBytes; import static com.android.bluetooth.Utils.callerIsSystemOrActiveOrManagedUser; import static com.android.bluetooth.Utils.callerIsSystemOrActiveUser; Loading Loading @@ -1766,15 +1768,18 @@ public class AdapterService extends Service { } @Override public boolean fetchRemoteUuids(BluetoothDevice device) { public boolean fetchRemoteUuids(BluetoothDevice device, int transport) { AdapterService service = getService(); if (service == null || !callerIsSystemOrActiveOrManagedUser(service, TAG, "fetchRemoteUuids")) { return false; } if (transport != TRANSPORT_AUTO) { enforceBluetoothPrivilegedPermission(service); } else { enforceBluetoothPermission(service); } service.mRemoteDevices.fetchUuids(device); service.mRemoteDevices.fetchUuids(device, transport); return true; } Loading Loading @@ -3568,7 +3573,7 @@ public class AdapterService extends Service { private native boolean sspReplyNative(byte[] address, int type, boolean accept, int passkey); /*package*/ native boolean getRemoteServicesNative(byte[] address); native boolean getRemoteServicesNative(byte[] address, int transport); /*package*/ native boolean getRemoteMasInstancesNative(byte[] address); Loading
android/app/src/com/android/bluetooth/btservice/RemoteDevices.java +3 −2 Original line number Diff line number Diff line Loading @@ -692,7 +692,7 @@ final class RemoteDevices { } void fetchUuids(BluetoothDevice device) { void fetchUuids(BluetoothDevice device, int transport) { if (sSdpTracker.contains(device)) { return; } Loading @@ -712,7 +712,8 @@ final class RemoteDevices { // Uses cached UUIDs if we are bonding. If not, we fetch the UUIDs with SDP. if (deviceProperties == null || !deviceProperties.isBonding()) { sAdapterService.getRemoteServicesNative(Utils.getBytesFromAddress(device.getAddress())); sAdapterService.getRemoteServicesNative(Utils.getBytesFromAddress(device.getAddress()), transport); } } Loading