Loading android/app/jni/com_android_bluetooth_gatt.cpp +12 −12 Original line number Diff line number Diff line Loading @@ -1798,8 +1798,8 @@ static void startAdvertisingSetNative(JNIEnv* env, jobject object, jobject parameters, jbyteArray adv_data, jbyteArray scan_resp, jobject periodic_parameters, jbyteArray periodic_data, jint timeout, jint reg_id) { jbyteArray periodic_data, jint duration, jint maxExtAdvEvents, jint reg_id) { if (!sGattIf) return; jbyte* scan_resp_data = env->GetByteArrayElements(scan_resp, NULL); Loading @@ -1812,8 +1812,6 @@ static void startAdvertisingSetNative(JNIEnv* env, jobject object, PeriodicAdvertisingParameters periodicParams = parsePeriodicParams(env, periodic_parameters); int timeout_s = (int)timeout / 1000; jbyte* adv_data_data = env->GetByteArrayElements(adv_data, NULL); uint16_t adv_data_len = (uint16_t)env->GetArrayLength(adv_data); std::vector<uint8_t> data_vec(adv_data_data, adv_data_data + adv_data_len); Loading @@ -1827,8 +1825,8 @@ static void startAdvertisingSetNative(JNIEnv* env, jobject object, sGattIf->advertiser->StartAdvertisingSet( base::Bind(&ble_advertising_set_started_cb, reg_id), params, data_vec, scan_resp_vec, periodicParams, periodic_data_vec, timeout_s, base::Bind(ble_advertising_set_timeout_cb)); scan_resp_vec, periodicParams, periodic_data_vec, duration, maxExtAdvEvents, base::Bind(ble_advertising_set_timeout_cb)); } static void stopAdvertisingSetNative(JNIEnv* env, jobject object, Loading Loading @@ -1856,12 +1854,13 @@ static void enableSetCb(uint8_t advertiser_id, bool enable, uint8_t status) { static void enableAdvertisingSetNative(JNIEnv* env, jobject object, jint advertiser_id, jboolean enable, jint timeout) { jint duration, jint maxExtAdvEvents) { if (!sGattIf) return; sGattIf->advertiser->Enable( advertiser_id, enable, base::Bind(&enableSetCb, advertiser_id, enable), timeout / 1000, base::Bind(&enableSetCb, advertiser_id, false)); sGattIf->advertiser->Enable(advertiser_id, enable, base::Bind(&enableSetCb, advertiser_id, enable), duration, maxExtAdvEvents, base::Bind(&enableSetCb, advertiser_id, false)); } static void setAdvertisingDataNative(JNIEnv* env, jobject object, Loading Loading @@ -2056,10 +2055,11 @@ static JNINativeMethod sAdvertiseMethods[] = { {"cleanupNative", "()V", (void*)advertiseCleanupNative}, {"startAdvertisingSetNative", "(Landroid/bluetooth/le/AdvertisingSetParameters;[B[BLandroid/bluetooth/" "le/PeriodicAdvertisingParameters;[BII)V", "le/PeriodicAdvertisingParameters;[BIII)V", (void*)startAdvertisingSetNative}, {"stopAdvertisingSetNative", "(I)V", (void*)stopAdvertisingSetNative}, {"enableAdvertisingSetNative", "(IZI)V", (void*)enableAdvertisingSetNative}, {"enableAdvertisingSetNative", "(IZII)V", (void*)enableAdvertisingSetNative}, {"setAdvertisingDataNative", "(I[B)V", (void*)setAdvertisingDataNative}, {"setScanResponseDataNative", "(I[B)V", (void*)setScanResponseDataNative}, {"setAdvertisingParametersNative", Loading android/app/src/com/android/bluetooth/gatt/AdvertiseManager.java +9 −7 Original line number Diff line number Diff line Loading @@ -179,7 +179,8 @@ class AdvertiseManager { void startAdvertisingSet(AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, int timeout, IAdvertisingSetCallback callback) { AdvertiseData periodicData, int duration, int maxExtAdvEvents, IAdvertisingSetCallback callback) { AdvertisingSetDeathRecipient deathRecipient = new AdvertisingSetDeathRecipient(callback); IBinder binder = toBinder(callback); try { Loading @@ -198,7 +199,7 @@ class AdvertiseManager { logd("startAdvertisingSet() - reg_id=" + cb_id + ", callback: " + binder); startAdvertisingSetNative(parameters, adv_data, scan_response, periodicParameters, periodic_data, timeout, cb_id); periodic_data, duration, maxExtAdvEvents, cb_id); } void stopAdvertisingSet(IAdvertisingSetCallback callback) { Loading @@ -223,8 +224,8 @@ class AdvertiseManager { stopAdvertisingSetNative(advertiser_id); } void enableAdvertisingSet(int advertiserId, boolean enable, int timeout) { enableAdvertisingSetNative(advertiserId, enable, timeout); void enableAdvertisingSet(int advertiserId, boolean enable, int duration, int maxExtAdvEvents) { enableAdvertisingSetNative(advertiserId, enable, duration, maxExtAdvEvents); } void setAdvertisingData(int advertiserId, AdvertiseData data) { Loading Loading @@ -358,10 +359,11 @@ class AdvertiseManager { private native void cleanupNative(); private native void startAdvertisingSetNative(AdvertisingSetParameters parameters, byte[] advertiseData, byte[] scanResponse, PeriodicAdvertisingParameters periodicParameters, byte[] periodicData, int timeout, int reg_id); PeriodicAdvertisingParameters periodicParameters, byte[] periodicData, int duration, int maxExtAdvEvents, int reg_id); private native void stopAdvertisingSetNative(int advertiser_id); private native void enableAdvertisingSetNative(int advertiserId, boolean enable, int timeout); private native void enableAdvertisingSetNative( int advertiserId, boolean enable, int duration, int maxExtAdvEvents); private native void setAdvertisingDataNative(int advertiserId, byte[] data); private native void setScanResponseDataNative(int advertiserId, byte[] data); private native void setAdvertisingParametersNative( Loading android/app/src/com/android/bluetooth/gatt/GattService.java +10 −8 Original line number Diff line number Diff line Loading @@ -556,11 +556,11 @@ public class GattService extends ProfileService { public void startAdvertisingSet(AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, int timeout, IAdvertisingSetCallback callback) { int duration, int maxExtAdvEvents, IAdvertisingSetCallback callback) { GattService service = getService(); if (service == null) return; service.startAdvertisingSet(parameters, advertiseData, scanResponse, periodicParameters, periodicData, timeout, callback); periodicData, duration, maxExtAdvEvents, callback); } public void stopAdvertisingSet(IAdvertisingSetCallback callback) { Loading @@ -569,10 +569,11 @@ public class GattService extends ProfileService { service.stopAdvertisingSet(callback); } public void enableAdvertisingSet(int advertiserId, boolean enable, int timeout) { public void enableAdvertisingSet( int advertiserId, boolean enable, int duration, int maxExtAdvEvents) { GattService service = getService(); if (service == null) return; service.enableAdvertisingSet(advertiserId, enable, timeout); service.enableAdvertisingSet(advertiserId, enable, duration, maxExtAdvEvents); } public void setAdvertisingData(int advertiserId, AdvertiseData data) { Loading Loading @@ -1506,10 +1507,11 @@ public class GattService extends ProfileService { *************************************************************************/ void startAdvertisingSet(AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, int timeout, IAdvertisingSetCallback callback) { AdvertiseData periodicData, int duration, int maxExtAdvEvents, IAdvertisingSetCallback callback) { enforceAdminPermission(); mAdvertiseManager.startAdvertisingSet(parameters, advertiseData, scanResponse, periodicParameters, periodicData, timeout, callback); periodicParameters, periodicData, duration, maxExtAdvEvents, callback); } void stopAdvertisingSet(IAdvertisingSetCallback callback) { Loading @@ -1517,9 +1519,9 @@ public class GattService extends ProfileService { mAdvertiseManager.stopAdvertisingSet(callback); } void enableAdvertisingSet(int advertiserId, boolean enable, int timeout) { void enableAdvertisingSet(int advertiserId, boolean enable, int duration, int maxExtAdvEvents) { enforceAdminPermission(); mAdvertiseManager.enableAdvertisingSet(advertiserId, enable, timeout); mAdvertiseManager.enableAdvertisingSet(advertiserId, enable, duration, maxExtAdvEvents); } void setAdvertisingData(int advertiserId, AdvertiseData data) { Loading android/app/src/com/android/bluetooth/gatt/PeriodicScanManager.java +0 −2 Original line number Diff line number Diff line Loading @@ -17,9 +17,7 @@ package com.android.bluetooth.gatt; import android.bluetooth.le.AdvertiseData; import android.bluetooth.le.AdvertisingSetParameters; import android.bluetooth.le.IPeriodicAdvertisingCallback; import android.bluetooth.le.PeriodicAdvertisingParameters; import android.bluetooth.le.PeriodicAdvertisingReport; import android.bluetooth.le.ScanRecord; import android.bluetooth.le.ScanResult; Loading Loading
android/app/jni/com_android_bluetooth_gatt.cpp +12 −12 Original line number Diff line number Diff line Loading @@ -1798,8 +1798,8 @@ static void startAdvertisingSetNative(JNIEnv* env, jobject object, jobject parameters, jbyteArray adv_data, jbyteArray scan_resp, jobject periodic_parameters, jbyteArray periodic_data, jint timeout, jint reg_id) { jbyteArray periodic_data, jint duration, jint maxExtAdvEvents, jint reg_id) { if (!sGattIf) return; jbyte* scan_resp_data = env->GetByteArrayElements(scan_resp, NULL); Loading @@ -1812,8 +1812,6 @@ static void startAdvertisingSetNative(JNIEnv* env, jobject object, PeriodicAdvertisingParameters periodicParams = parsePeriodicParams(env, periodic_parameters); int timeout_s = (int)timeout / 1000; jbyte* adv_data_data = env->GetByteArrayElements(adv_data, NULL); uint16_t adv_data_len = (uint16_t)env->GetArrayLength(adv_data); std::vector<uint8_t> data_vec(adv_data_data, adv_data_data + adv_data_len); Loading @@ -1827,8 +1825,8 @@ static void startAdvertisingSetNative(JNIEnv* env, jobject object, sGattIf->advertiser->StartAdvertisingSet( base::Bind(&ble_advertising_set_started_cb, reg_id), params, data_vec, scan_resp_vec, periodicParams, periodic_data_vec, timeout_s, base::Bind(ble_advertising_set_timeout_cb)); scan_resp_vec, periodicParams, periodic_data_vec, duration, maxExtAdvEvents, base::Bind(ble_advertising_set_timeout_cb)); } static void stopAdvertisingSetNative(JNIEnv* env, jobject object, Loading Loading @@ -1856,12 +1854,13 @@ static void enableSetCb(uint8_t advertiser_id, bool enable, uint8_t status) { static void enableAdvertisingSetNative(JNIEnv* env, jobject object, jint advertiser_id, jboolean enable, jint timeout) { jint duration, jint maxExtAdvEvents) { if (!sGattIf) return; sGattIf->advertiser->Enable( advertiser_id, enable, base::Bind(&enableSetCb, advertiser_id, enable), timeout / 1000, base::Bind(&enableSetCb, advertiser_id, false)); sGattIf->advertiser->Enable(advertiser_id, enable, base::Bind(&enableSetCb, advertiser_id, enable), duration, maxExtAdvEvents, base::Bind(&enableSetCb, advertiser_id, false)); } static void setAdvertisingDataNative(JNIEnv* env, jobject object, Loading Loading @@ -2056,10 +2055,11 @@ static JNINativeMethod sAdvertiseMethods[] = { {"cleanupNative", "()V", (void*)advertiseCleanupNative}, {"startAdvertisingSetNative", "(Landroid/bluetooth/le/AdvertisingSetParameters;[B[BLandroid/bluetooth/" "le/PeriodicAdvertisingParameters;[BII)V", "le/PeriodicAdvertisingParameters;[BIII)V", (void*)startAdvertisingSetNative}, {"stopAdvertisingSetNative", "(I)V", (void*)stopAdvertisingSetNative}, {"enableAdvertisingSetNative", "(IZI)V", (void*)enableAdvertisingSetNative}, {"enableAdvertisingSetNative", "(IZII)V", (void*)enableAdvertisingSetNative}, {"setAdvertisingDataNative", "(I[B)V", (void*)setAdvertisingDataNative}, {"setScanResponseDataNative", "(I[B)V", (void*)setScanResponseDataNative}, {"setAdvertisingParametersNative", Loading
android/app/src/com/android/bluetooth/gatt/AdvertiseManager.java +9 −7 Original line number Diff line number Diff line Loading @@ -179,7 +179,8 @@ class AdvertiseManager { void startAdvertisingSet(AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, int timeout, IAdvertisingSetCallback callback) { AdvertiseData periodicData, int duration, int maxExtAdvEvents, IAdvertisingSetCallback callback) { AdvertisingSetDeathRecipient deathRecipient = new AdvertisingSetDeathRecipient(callback); IBinder binder = toBinder(callback); try { Loading @@ -198,7 +199,7 @@ class AdvertiseManager { logd("startAdvertisingSet() - reg_id=" + cb_id + ", callback: " + binder); startAdvertisingSetNative(parameters, adv_data, scan_response, periodicParameters, periodic_data, timeout, cb_id); periodic_data, duration, maxExtAdvEvents, cb_id); } void stopAdvertisingSet(IAdvertisingSetCallback callback) { Loading @@ -223,8 +224,8 @@ class AdvertiseManager { stopAdvertisingSetNative(advertiser_id); } void enableAdvertisingSet(int advertiserId, boolean enable, int timeout) { enableAdvertisingSetNative(advertiserId, enable, timeout); void enableAdvertisingSet(int advertiserId, boolean enable, int duration, int maxExtAdvEvents) { enableAdvertisingSetNative(advertiserId, enable, duration, maxExtAdvEvents); } void setAdvertisingData(int advertiserId, AdvertiseData data) { Loading Loading @@ -358,10 +359,11 @@ class AdvertiseManager { private native void cleanupNative(); private native void startAdvertisingSetNative(AdvertisingSetParameters parameters, byte[] advertiseData, byte[] scanResponse, PeriodicAdvertisingParameters periodicParameters, byte[] periodicData, int timeout, int reg_id); PeriodicAdvertisingParameters periodicParameters, byte[] periodicData, int duration, int maxExtAdvEvents, int reg_id); private native void stopAdvertisingSetNative(int advertiser_id); private native void enableAdvertisingSetNative(int advertiserId, boolean enable, int timeout); private native void enableAdvertisingSetNative( int advertiserId, boolean enable, int duration, int maxExtAdvEvents); private native void setAdvertisingDataNative(int advertiserId, byte[] data); private native void setScanResponseDataNative(int advertiserId, byte[] data); private native void setAdvertisingParametersNative( Loading
android/app/src/com/android/bluetooth/gatt/GattService.java +10 −8 Original line number Diff line number Diff line Loading @@ -556,11 +556,11 @@ public class GattService extends ProfileService { public void startAdvertisingSet(AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, int timeout, IAdvertisingSetCallback callback) { int duration, int maxExtAdvEvents, IAdvertisingSetCallback callback) { GattService service = getService(); if (service == null) return; service.startAdvertisingSet(parameters, advertiseData, scanResponse, periodicParameters, periodicData, timeout, callback); periodicData, duration, maxExtAdvEvents, callback); } public void stopAdvertisingSet(IAdvertisingSetCallback callback) { Loading @@ -569,10 +569,11 @@ public class GattService extends ProfileService { service.stopAdvertisingSet(callback); } public void enableAdvertisingSet(int advertiserId, boolean enable, int timeout) { public void enableAdvertisingSet( int advertiserId, boolean enable, int duration, int maxExtAdvEvents) { GattService service = getService(); if (service == null) return; service.enableAdvertisingSet(advertiserId, enable, timeout); service.enableAdvertisingSet(advertiserId, enable, duration, maxExtAdvEvents); } public void setAdvertisingData(int advertiserId, AdvertiseData data) { Loading Loading @@ -1506,10 +1507,11 @@ public class GattService extends ProfileService { *************************************************************************/ void startAdvertisingSet(AdvertisingSetParameters parameters, AdvertiseData advertiseData, AdvertiseData scanResponse, PeriodicAdvertisingParameters periodicParameters, AdvertiseData periodicData, int timeout, IAdvertisingSetCallback callback) { AdvertiseData periodicData, int duration, int maxExtAdvEvents, IAdvertisingSetCallback callback) { enforceAdminPermission(); mAdvertiseManager.startAdvertisingSet(parameters, advertiseData, scanResponse, periodicParameters, periodicData, timeout, callback); periodicParameters, periodicData, duration, maxExtAdvEvents, callback); } void stopAdvertisingSet(IAdvertisingSetCallback callback) { Loading @@ -1517,9 +1519,9 @@ public class GattService extends ProfileService { mAdvertiseManager.stopAdvertisingSet(callback); } void enableAdvertisingSet(int advertiserId, boolean enable, int timeout) { void enableAdvertisingSet(int advertiserId, boolean enable, int duration, int maxExtAdvEvents) { enforceAdminPermission(); mAdvertiseManager.enableAdvertisingSet(advertiserId, enable, timeout); mAdvertiseManager.enableAdvertisingSet(advertiserId, enable, duration, maxExtAdvEvents); } void setAdvertisingData(int advertiserId, AdvertiseData data) { Loading
android/app/src/com/android/bluetooth/gatt/PeriodicScanManager.java +0 −2 Original line number Diff line number Diff line Loading @@ -17,9 +17,7 @@ package com.android.bluetooth.gatt; import android.bluetooth.le.AdvertiseData; import android.bluetooth.le.AdvertisingSetParameters; import android.bluetooth.le.IPeriodicAdvertisingCallback; import android.bluetooth.le.PeriodicAdvertisingParameters; import android.bluetooth.le.PeriodicAdvertisingReport; import android.bluetooth.le.ScanRecord; import android.bluetooth.le.ScanResult; Loading