Do not return devices when caller has no location permission

During startLeScan, do not return devices if calling process has no location
permission/appop

Bug: 21852542
Change-Id: Idce8f4704558574e373e8144390f2a2fa1a7e84a
This commit is contained in:
Fyodor Kupolov
2015-06-19 15:35:11 -07:00
committed by Andre Eisenbach
parent adebbebaa7
commit a179030483
2 changed files with 3 additions and 2 deletions

View File

@@ -36,7 +36,7 @@ interface IBluetoothGatt {
void startScan(in int appIf, in boolean isServer, in ScanSettings settings,
in List<ScanFilter> filters,
in List scanStorages);
in List scanStorages, in String callingPackage);
void stopScan(in int appIf, in boolean isServer);
void flushPendingBatchResults(in int appIf, in boolean isServer);
void startMultiAdvertising(in int appIf,

View File

@@ -19,6 +19,7 @@ package android.bluetooth.le;
import android.Manifest;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.app.ActivityThread;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallbackWrapper;
@@ -313,7 +314,7 @@ public final class BluetoothLeScanner {
mClientIf = clientIf;
try {
mBluetoothGatt.startScan(mClientIf, false, mSettings, mFilters,
mResultStorages);
mResultStorages, ActivityThread.currentOpPackageName());
} catch (RemoteException e) {
Log.e(TAG, "fail to start le scan: " + e);
mClientIf = -1;