Manage onfound/lost resources (1/2)
Provide error callback to app if advertisement tracking resources can't be reserved Change-Id: Ie66b2ec7a64b24bbdf3bb22003a4a7eb46623792
This commit is contained in:
@@ -1305,9 +1305,12 @@ public final class BluetoothAdapter {
|
||||
public boolean isHardwareTrackingFiltersAvailable() {
|
||||
if (getState() != STATE_ON) return false;
|
||||
try {
|
||||
synchronized(mManagerCallback) {
|
||||
if(mService != null) return (mService.numOfHwTrackFiltersAvailable() != 0);
|
||||
IBluetoothGatt iGatt = mManagerService.getBluetoothGatt();
|
||||
if (iGatt == null) {
|
||||
// BLE is not supported
|
||||
return false;
|
||||
}
|
||||
return (iGatt.numHwTrackFiltersAvailable() != 0);
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "", e);
|
||||
}
|
||||
|
||||
@@ -123,4 +123,7 @@ public class BluetoothGattCallbackWrapper extends IBluetoothGattCallback.Stub {
|
||||
public void onFoundOrLost(boolean onFound, ScanResult scanResult) throws RemoteException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanManagerErrorCallback(int errorCode) throws RemoteException {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +100,6 @@ interface IBluetooth
|
||||
boolean isActivityAndEnergyReportingSupported();
|
||||
void getActivityEnergyInfoFromController();
|
||||
BluetoothActivityEnergyInfo reportActivityInfo();
|
||||
int numOfHwTrackFiltersAvailable();
|
||||
|
||||
// for dumpsys support
|
||||
String dump();
|
||||
|
||||
@@ -103,4 +103,5 @@ interface IBluetoothGatt {
|
||||
in boolean confirm, in byte[] value);
|
||||
void disconnectAll();
|
||||
void unregAll();
|
||||
int numHwTrackFiltersAvailable();
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ oneway interface IBluetoothGattCallback {
|
||||
void onReadRemoteRssi(in String address, in int rssi, in int status);
|
||||
void onMultiAdvertiseCallback(in int status, boolean isStart,
|
||||
in AdvertiseSettings advertiseSettings);
|
||||
void onScanManagerErrorCallback(in int errorCode);
|
||||
void onConfigureMTU(in String address, in int mtu, in int status);
|
||||
void onFoundOrLost(in boolean onFound, in ScanResult scanResult);
|
||||
}
|
||||
|
||||
@@ -381,6 +381,18 @@ public final class BluetoothLeScanner {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanManagerErrorCallback(final int errorCode) {
|
||||
if (VDBG) {
|
||||
Log.d(TAG, "onScanManagerErrorCallback() - errorCode = " + errorCode);
|
||||
}
|
||||
synchronized (this) {
|
||||
if (mClientIf <= 0)
|
||||
return;
|
||||
}
|
||||
postCallbackError(mScanCallback, errorCode);
|
||||
}
|
||||
}
|
||||
|
||||
private void postCallbackError(final ScanCallback callback, final int errorCode) {
|
||||
|
||||
Reference in New Issue
Block a user