Loading android/app/src/com/android/bluetooth/a2dp/A2dpService.java +23 −14 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.bluetooth.a2dp; import static com.android.bluetooth.Utils.enforceBluetoothPermission; import static com.android.bluetooth.Utils.enforceBluetoothPrivilegedPermission; import android.bluetooth.BluetoothA2dp; import android.bluetooth.BluetoothA2dp.OptionalCodecsPreferenceStatus; import android.bluetooth.BluetoothA2dp.OptionalCodecsSupportStatus; Loading Loading @@ -633,7 +636,8 @@ public class A2dpService extends ProfileService { * @return true if connectionPolicy is set, false on error */ public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (DBG) { Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy); } Loading Loading @@ -662,7 +666,6 @@ public class A2dpService extends ProfileService { * @hide */ public int getConnectionPolicy(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); return mAdapterService.getDatabase() .getProfileConnectionPolicy(device, BluetoothProfile.A2DP); } Loading Loading @@ -699,7 +702,7 @@ public class A2dpService extends ProfileService { /** * Gets the current codec status (configuration and capability). * * @param device the remote Bluetooth device. If null, use the currect * @param device the remote Bluetooth device. If null, use the current * active A2DP Bluetooth device. * @return the current codec status * @hide Loading Loading @@ -734,8 +737,7 @@ public class A2dpService extends ProfileService { */ public void setCodecConfigPreference(BluetoothDevice device, BluetoothCodecConfig codecConfig) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); if (DBG) { Log.d(TAG, "setCodecConfigPreference(" + device + "): " + Objects.toString(codecConfig)); Loading Loading @@ -767,8 +769,7 @@ public class A2dpService extends ProfileService { * @hide */ public void enableOptionalCodecs(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); if (DBG) { Log.d(TAG, "enableOptionalCodecs(" + device + ")"); } Loading Loading @@ -799,8 +800,7 @@ public class A2dpService extends ProfileService { * @hide */ public void disableOptionalCodecs(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); if (DBG) { Log.d(TAG, "disableOptionalCodecs(" + device + ")"); } Loading Loading @@ -833,13 +833,12 @@ public class A2dpService extends ProfileService { * {@link OptionalCodecsSupportStatus#OPTIONAL_CODECS_SUPPORT_UNKNOWN}. */ public @OptionalCodecsSupportStatus int getSupportsOptionalCodecs(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); return mAdapterService.getDatabase().getA2dpSupportsOptionalCodecs(device); } public void setSupportsOptionalCodecs(BluetoothDevice device, boolean doesSupport) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); int value = doesSupport ? BluetoothA2dp.OPTIONAL_CODECS_SUPPORTED : BluetoothA2dp.OPTIONAL_CODECS_NOT_SUPPORTED; mAdapterService.getDatabase().setA2dpSupportsOptionalCodecs(device, value); Loading Loading @@ -870,8 +869,7 @@ public class A2dpService extends ProfileService { */ public void setOptionalCodecsEnabled(BluetoothDevice device, @OptionalCodecsPreferenceStatus int value) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); if (value != BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN && value != BluetoothA2dp.OPTIONAL_CODECS_PREF_DISABLED && value != BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED) { Loading Loading @@ -1284,12 +1282,23 @@ public class A2dpService extends ProfileService { return service.setConnectionPolicy(device, connectionPolicy); } @Override public int getPriority(BluetoothDevice device) { A2dpService service = getService(); if (service == null) { return BluetoothProfile.CONNECTION_POLICY_UNKNOWN; } enforceBluetoothPermission(service); return service.getConnectionPolicy(device); } @Override public int getConnectionPolicy(BluetoothDevice device) { A2dpService service = getService(); if (service == null) { return BluetoothProfile.CONNECTION_POLICY_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); return service.getConnectionPolicy(device); } Loading android/app/src/com/android/bluetooth/a2dpsink/A2dpSinkService.java +3 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,8 @@ public class A2dpSinkService extends ProfileService { * @return true if connection is successful, false otherwise. */ public synchronized boolean connect(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (device == null) { throw new IllegalArgumentException("Null device"); } Loading Loading @@ -258,6 +260,7 @@ public class A2dpSinkService extends ProfileService { * @return true if disconnect is successful, false otherwise. */ public synchronized boolean disconnect(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); if (DBG) { StringBuilder sb = new StringBuilder(); dump(sb); Loading android/app/src/com/android/bluetooth/btservice/AdapterService.java +8 −8 Original line number Diff line number Diff line Loading @@ -1274,7 +1274,7 @@ public class AdapterService extends Service { return false; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); service.mAdapterProperties.setDiscoverableTimeout(duration); return service.mAdapterProperties.setScanMode(convertScanModeToHal(mode)); Loading Loading @@ -1348,7 +1348,7 @@ public class AdapterService extends Service { return -1; } enforceBluetoothPermission(service); enforceBluetoothPrivilegedPermission(service); return service.mAdapterProperties.discoveryEndMillis(); } Loading Loading @@ -1427,7 +1427,7 @@ public class AdapterService extends Service { return false; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothAdminPermission(service); DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); if (deviceProp != null) { Loading Loading @@ -1479,7 +1479,7 @@ public class AdapterService extends Service { return false; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); return deviceProp != null && deviceProp.isBondingInitiatedLocally(); Loading Loading @@ -1603,7 +1603,7 @@ public class AdapterService extends Service { return false; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); if (deviceProp == null) { Loading Loading @@ -1755,7 +1755,7 @@ public class AdapterService extends Service { return BluetoothDevice.ACCESS_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); return service.getDeviceAccessFromPrefs(device, PHONEBOOK_ACCESS_PERMISSION_PREFERENCE_FILE); } Loading @@ -1780,7 +1780,7 @@ public class AdapterService extends Service { return BluetoothDevice.ACCESS_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); return service.getDeviceAccessFromPrefs(device, MESSAGE_ACCESS_PERMISSION_PREFERENCE_FILE); } Loading Loading @@ -1856,7 +1856,7 @@ public class AdapterService extends Service { return BluetoothDevice.BATTERY_LEVEL_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); if (deviceProp == null) { Loading android/app/src/com/android/bluetooth/hearingaid/HearingAidService.java +11 −4 Original line number Diff line number Diff line Loading @@ -228,7 +228,8 @@ public class HearingAidService extends ProfileService { * @return true if hearing aid profile successfully connected, false otherwise */ public boolean connect(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (DBG) { Log.d(TAG, "connect(): " + device); } Loading Loading @@ -294,7 +295,8 @@ public class HearingAidService extends ProfileService { * @return true if hearing aid profile successfully disconnected, false otherwise */ public boolean disconnect(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (DBG) { Log.d(TAG, "disconnect(): " + device); } Loading Loading @@ -478,7 +480,8 @@ public class HearingAidService extends ProfileService { * @return true if connectionPolicy is set, false on error */ public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (DBG) { Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy); } Loading @@ -505,7 +508,8 @@ public class HearingAidService extends ProfileService { * @hide */ public int getConnectionPolicy(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); return mAdapterService.getDatabase() .getProfileConnectionPolicy(device, BluetoothProfile.HEARING_AID); } Loading @@ -515,6 +519,8 @@ public class HearingAidService extends ProfileService { } long getHiSyncId(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (device == null) { return BluetoothHearingAid.HI_SYNC_ID_INVALID; } Loading Loading @@ -565,6 +571,7 @@ public class HearingAidService extends ProfileService { * is not active, it will be null on that position */ public List<BluetoothDevice> getActiveDevices() { enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); if (DBG) { Log.d(TAG, "getActiveDevices"); } Loading android/app/src/com/android/bluetooth/hfp/HeadsetService.java +26 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ package com.android.bluetooth.hfp; import static android.Manifest.permission.MODIFY_PHONE_STATE; import static com.android.bluetooth.Utils.enforceBluetoothAdminPermission; import static com.android.bluetooth.Utils.enforceBluetoothPermission; import static com.android.bluetooth.Utils.enforceBluetoothPrivilegedPermission; import android.annotation.Nullable; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothHeadset; Loading Loading @@ -476,21 +480,43 @@ public class HeadsetService extends ProfileService { return service.getConnectionState(device); } @Override public boolean setPriority(BluetoothDevice device, int connectionPolicy) { HeadsetService service = getService(); if (service == null) { return false; } enforceBluetoothAdminPermission(service); return service.setConnectionPolicy(device, connectionPolicy); } @Override public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) { HeadsetService service = getService(); if (service == null) { return false; } enforceBluetoothPrivilegedPermission(service); return service.setConnectionPolicy(device, connectionPolicy); } @Override public int getPriority(BluetoothDevice device) { HeadsetService service = getService(); if (service == null) { return BluetoothProfile.CONNECTION_POLICY_UNKNOWN; } enforceBluetoothPermission(service); return service.getConnectionPolicy(device); } @Override public int getConnectionPolicy(BluetoothDevice device) { HeadsetService service = getService(); if (service == null) { return BluetoothProfile.CONNECTION_POLICY_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); return service.getConnectionPolicy(device); } Loading Loading @@ -833,7 +859,6 @@ public class HeadsetService extends ProfileService { * @return true if connectionPolicy is set, false on error */ public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); Log.i(TAG, "setConnectionPolicy: device=" + device + ", connectionPolicy=" + connectionPolicy + ", " + Utils.getUidPidString()); mAdapterService.getDatabase() Loading @@ -859,7 +884,6 @@ public class HeadsetService extends ProfileService { * @hide */ public int getConnectionPolicy(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); return mAdapterService.getDatabase() .getProfileConnectionPolicy(device, BluetoothProfile.HEADSET); } Loading Loading
android/app/src/com/android/bluetooth/a2dp/A2dpService.java +23 −14 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.bluetooth.a2dp; import static com.android.bluetooth.Utils.enforceBluetoothPermission; import static com.android.bluetooth.Utils.enforceBluetoothPrivilegedPermission; import android.bluetooth.BluetoothA2dp; import android.bluetooth.BluetoothA2dp.OptionalCodecsPreferenceStatus; import android.bluetooth.BluetoothA2dp.OptionalCodecsSupportStatus; Loading Loading @@ -633,7 +636,8 @@ public class A2dpService extends ProfileService { * @return true if connectionPolicy is set, false on error */ public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (DBG) { Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy); } Loading Loading @@ -662,7 +666,6 @@ public class A2dpService extends ProfileService { * @hide */ public int getConnectionPolicy(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); return mAdapterService.getDatabase() .getProfileConnectionPolicy(device, BluetoothProfile.A2DP); } Loading Loading @@ -699,7 +702,7 @@ public class A2dpService extends ProfileService { /** * Gets the current codec status (configuration and capability). * * @param device the remote Bluetooth device. If null, use the currect * @param device the remote Bluetooth device. If null, use the current * active A2DP Bluetooth device. * @return the current codec status * @hide Loading Loading @@ -734,8 +737,7 @@ public class A2dpService extends ProfileService { */ public void setCodecConfigPreference(BluetoothDevice device, BluetoothCodecConfig codecConfig) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); if (DBG) { Log.d(TAG, "setCodecConfigPreference(" + device + "): " + Objects.toString(codecConfig)); Loading Loading @@ -767,8 +769,7 @@ public class A2dpService extends ProfileService { * @hide */ public void enableOptionalCodecs(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); if (DBG) { Log.d(TAG, "enableOptionalCodecs(" + device + ")"); } Loading Loading @@ -799,8 +800,7 @@ public class A2dpService extends ProfileService { * @hide */ public void disableOptionalCodecs(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); if (DBG) { Log.d(TAG, "disableOptionalCodecs(" + device + ")"); } Loading Loading @@ -833,13 +833,12 @@ public class A2dpService extends ProfileService { * {@link OptionalCodecsSupportStatus#OPTIONAL_CODECS_SUPPORT_UNKNOWN}. */ public @OptionalCodecsSupportStatus int getSupportsOptionalCodecs(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); return mAdapterService.getDatabase().getA2dpSupportsOptionalCodecs(device); } public void setSupportsOptionalCodecs(BluetoothDevice device, boolean doesSupport) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); int value = doesSupport ? BluetoothA2dp.OPTIONAL_CODECS_SUPPORTED : BluetoothA2dp.OPTIONAL_CODECS_NOT_SUPPORTED; mAdapterService.getDatabase().setA2dpSupportsOptionalCodecs(device, value); Loading Loading @@ -870,8 +869,7 @@ public class A2dpService extends ProfileService { */ public void setOptionalCodecsEnabled(BluetoothDevice device, @OptionalCodecsPreferenceStatus int value) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); if (value != BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN && value != BluetoothA2dp.OPTIONAL_CODECS_PREF_DISABLED && value != BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED) { Loading Loading @@ -1284,12 +1282,23 @@ public class A2dpService extends ProfileService { return service.setConnectionPolicy(device, connectionPolicy); } @Override public int getPriority(BluetoothDevice device) { A2dpService service = getService(); if (service == null) { return BluetoothProfile.CONNECTION_POLICY_UNKNOWN; } enforceBluetoothPermission(service); return service.getConnectionPolicy(device); } @Override public int getConnectionPolicy(BluetoothDevice device) { A2dpService service = getService(); if (service == null) { return BluetoothProfile.CONNECTION_POLICY_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); return service.getConnectionPolicy(device); } Loading
android/app/src/com/android/bluetooth/a2dpsink/A2dpSinkService.java +3 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,8 @@ public class A2dpSinkService extends ProfileService { * @return true if connection is successful, false otherwise. */ public synchronized boolean connect(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (device == null) { throw new IllegalArgumentException("Null device"); } Loading Loading @@ -258,6 +260,7 @@ public class A2dpSinkService extends ProfileService { * @return true if disconnect is successful, false otherwise. */ public synchronized boolean disconnect(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); if (DBG) { StringBuilder sb = new StringBuilder(); dump(sb); Loading
android/app/src/com/android/bluetooth/btservice/AdapterService.java +8 −8 Original line number Diff line number Diff line Loading @@ -1274,7 +1274,7 @@ public class AdapterService extends Service { return false; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); service.mAdapterProperties.setDiscoverableTimeout(duration); return service.mAdapterProperties.setScanMode(convertScanModeToHal(mode)); Loading Loading @@ -1348,7 +1348,7 @@ public class AdapterService extends Service { return -1; } enforceBluetoothPermission(service); enforceBluetoothPrivilegedPermission(service); return service.mAdapterProperties.discoveryEndMillis(); } Loading Loading @@ -1427,7 +1427,7 @@ public class AdapterService extends Service { return false; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothAdminPermission(service); DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); if (deviceProp != null) { Loading Loading @@ -1479,7 +1479,7 @@ public class AdapterService extends Service { return false; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); return deviceProp != null && deviceProp.isBondingInitiatedLocally(); Loading Loading @@ -1603,7 +1603,7 @@ public class AdapterService extends Service { return false; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); if (deviceProp == null) { Loading Loading @@ -1755,7 +1755,7 @@ public class AdapterService extends Service { return BluetoothDevice.ACCESS_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); return service.getDeviceAccessFromPrefs(device, PHONEBOOK_ACCESS_PERMISSION_PREFERENCE_FILE); } Loading @@ -1780,7 +1780,7 @@ public class AdapterService extends Service { return BluetoothDevice.ACCESS_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); return service.getDeviceAccessFromPrefs(device, MESSAGE_ACCESS_PERMISSION_PREFERENCE_FILE); } Loading Loading @@ -1856,7 +1856,7 @@ public class AdapterService extends Service { return BluetoothDevice.BATTERY_LEVEL_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); enforceBluetoothPermission(service); DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); if (deviceProp == null) { Loading
android/app/src/com/android/bluetooth/hearingaid/HearingAidService.java +11 −4 Original line number Diff line number Diff line Loading @@ -228,7 +228,8 @@ public class HearingAidService extends ProfileService { * @return true if hearing aid profile successfully connected, false otherwise */ public boolean connect(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (DBG) { Log.d(TAG, "connect(): " + device); } Loading Loading @@ -294,7 +295,8 @@ public class HearingAidService extends ProfileService { * @return true if hearing aid profile successfully disconnected, false otherwise */ public boolean disconnect(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (DBG) { Log.d(TAG, "disconnect(): " + device); } Loading Loading @@ -478,7 +480,8 @@ public class HearingAidService extends ProfileService { * @return true if connectionPolicy is set, false on error */ public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (DBG) { Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy); } Loading @@ -505,7 +508,8 @@ public class HearingAidService extends ProfileService { * @hide */ public int getConnectionPolicy(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); return mAdapterService.getDatabase() .getProfileConnectionPolicy(device, BluetoothProfile.HEARING_AID); } Loading @@ -515,6 +519,8 @@ public class HearingAidService extends ProfileService { } long getHiSyncId(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission"); if (device == null) { return BluetoothHearingAid.HI_SYNC_ID_INVALID; } Loading Loading @@ -565,6 +571,7 @@ public class HearingAidService extends ProfileService { * is not active, it will be null on that position */ public List<BluetoothDevice> getActiveDevices() { enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); if (DBG) { Log.d(TAG, "getActiveDevices"); } Loading
android/app/src/com/android/bluetooth/hfp/HeadsetService.java +26 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ package com.android.bluetooth.hfp; import static android.Manifest.permission.MODIFY_PHONE_STATE; import static com.android.bluetooth.Utils.enforceBluetoothAdminPermission; import static com.android.bluetooth.Utils.enforceBluetoothPermission; import static com.android.bluetooth.Utils.enforceBluetoothPrivilegedPermission; import android.annotation.Nullable; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothHeadset; Loading Loading @@ -476,21 +480,43 @@ public class HeadsetService extends ProfileService { return service.getConnectionState(device); } @Override public boolean setPriority(BluetoothDevice device, int connectionPolicy) { HeadsetService service = getService(); if (service == null) { return false; } enforceBluetoothAdminPermission(service); return service.setConnectionPolicy(device, connectionPolicy); } @Override public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) { HeadsetService service = getService(); if (service == null) { return false; } enforceBluetoothPrivilegedPermission(service); return service.setConnectionPolicy(device, connectionPolicy); } @Override public int getPriority(BluetoothDevice device) { HeadsetService service = getService(); if (service == null) { return BluetoothProfile.CONNECTION_POLICY_UNKNOWN; } enforceBluetoothPermission(service); return service.getConnectionPolicy(device); } @Override public int getConnectionPolicy(BluetoothDevice device) { HeadsetService service = getService(); if (service == null) { return BluetoothProfile.CONNECTION_POLICY_UNKNOWN; } enforceBluetoothPrivilegedPermission(service); return service.getConnectionPolicy(device); } Loading Loading @@ -833,7 +859,6 @@ public class HeadsetService extends ProfileService { * @return true if connectionPolicy is set, false on error */ public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) { enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission"); Log.i(TAG, "setConnectionPolicy: device=" + device + ", connectionPolicy=" + connectionPolicy + ", " + Utils.getUidPidString()); mAdapterService.getDatabase() Loading @@ -859,7 +884,6 @@ public class HeadsetService extends ProfileService { * @hide */ public int getConnectionPolicy(BluetoothDevice device) { enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); return mAdapterService.getDatabase() .getProfileConnectionPolicy(device, BluetoothProfile.HEADSET); } Loading