summaryrefslogtreecommitdiff
path: root/framework/java/android/bluetooth/BluetoothHeadset.java
AgeCommit message (Collapse)Author
2022-07-26Merge TP1A.220624.020Deyao Ren
Change-Id: I357db3da652d8ce93bb26a00d0f123fae1b7c64c
2022-06-30Revert "Revert "Reuse SynchronousResultReceivers instead of creating new.""Neha Jain
This reverts commit dd85e91cea26c7f706af36c852e79d5b4ca1f173. Bug: 217366135 Reason for revert: Need this to fix a crash bug in tm-dev Change-Id: I2a94c278edc0681c5b8af6ea0a0171b71d72c650 (cherry picked from commit dbaf406ccb0ed887d4e93057c9ec0d3457f14457) Merged-In: I2a94c278edc0681c5b8af6ea0a0171b71d72c650
2022-06-29Revert "Reuse SynchronousResultReceivers instead of creating new."Neha Jain
This reverts commit 02dcbe72b3564559eaa9c2e2714824e4aac6f18c. Reason for revert: Causing builds to fail b/237471430 Change-Id: I6165d838abf312085050359377f67a68a5f8b51a (cherry picked from commit f5dd42bbd05e68f7763ccaa9fae5642acc4ceba1) Merged-In: I6165d838abf312085050359377f67a68a5f8b51a
2022-06-29Reuse SynchronousResultReceivers instead of creating new.Etienne Ruffieux
Bug: 217366135 Tag: #feature Test: manual Ignore-AOSP-First: to be chery-picked Change-Id: If8ae530a284151888a3f89a51d2c58f2a5cd3644 (cherry picked from commit 02dcbe72b3564559eaa9c2e2714824e4aac6f18c) Merged-In: If8ae530a284151888a3f89a51d2c58f2a5cd3644
2022-04-02Merge TP1A.220328.001Rob Seymour
Change-Id: I5f07094ba2fb3991da03673f97d2957b1f68018b
2022-03-25Merge TP1A.220321.002Scott Lobdell
Change-Id: Ie8206e8b9c11c3fd55b7adddac5c782ad92c9da4
2022-03-23Merge changes I2861d51d,Ifcc6971f am: 2b53c20373 am: 417226527d am: 3df425a07cTreehugger Robot
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2037666 Change-Id: Id714f5d4b7ce64472d60abed1cee05451cbc189e
2022-03-22BluetoothHeadset APIs now no longer returnRahul Sabnis
BluetoothStatusCodes#ERROR_BLUETOOTH_NOT_ENABLED. There should never be a case where the profile service is bound, but Bluetooth is off. Tag: #feature Bug: 202310885 Test: Manual Change-Id: I2861d51d90342e050fd62dceaa99886b46491225
2022-03-22Update BluetoothHeadset#connectAudio andRahul Sabnis
BluetoothHeadset#disconnectAudio to support additional error codes for GTS Bug: 211914959 Test: Manual Merged-In: Ifcc6971f4cef6d966cf14fdbfd1f97b34170c0ba Change-Id: Ifcc6971f4cef6d966cf14fdbfd1f97b34170c0ba
2022-03-18Merge "BluetoothHeadset#getAudioState now throws a NullPointerException if ↵Rahul Sabnis
the device param is null." am: d2ef8d7c4f am: 802f6def78 am: 43c5b15e41 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2030694 Change-Id: I71761f63d211838f09f30c043431d63083f3a3f8
2022-03-18Merge "BluetoothHeadset#getAudioState now throws a NullPointerException if ↵Rahul Sabnis
the device param is null."
2022-03-17BluetoothHeadset#getAudioState now throws a NullPointerException if theRahul Sabnis
device param is null. Tag: #feature Bug: 222265808 Test: Manual Change-Id: Ifd4eab1c377c8d465d6b6b3f345873210bd44cb8
2022-03-17Merge TP1A.220310.002Daniel Norman
Change-Id: If2f3a2a6833c45ec4c0cba7c7e668a487938cb92
2022-03-11Merge TP1A.220225.003Scott Lobdell
Change-Id: Id71ac466dbfe3707fe2e544ce22b1da8f474ec2b
2022-03-09Merge "[API Review] add new permissions to sco and inband ringing" am: ↵Rahul Sabnis
e75cf65ba9 am: 66ecd20db6 am: a25adab19b Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/1999719 Change-Id: I5e6aa4ba53a6eb9f970940e6fedd3fffa64affde
2022-03-08Merge "[API Review] add new permissions to sco and inband ringing"Rahul Sabnis
2022-03-07Merge TP1A.220209.001Deyao Ren
Change-Id: Id0e2895d3220831d2c617a243047e8229af8acc9
2022-02-25[API Review] add new permissions to sco and inband ringingEtienne Ruffieux
Bug: 200730908 Tag: #feature Test: manual Change-Id: I0a0915925b16cb53c3bf77fe47871ede6e752cdb
2022-02-24Make BluetoothHeadset APIs used by Telecom into System APIs and updateRahul Sabnis
service code to match. Tag: #feature Bug: 195156304 Test: Manual Merged-In: I8af246091ae49c8f9cf34c1f4a894b3a66a28cf8 Change-Id: I8af246091ae49c8f9cf34c1f4a894b3a66a28cf8
2022-02-23Merge "get and set audio route allowed APIs should have different IntDef ↵Treehugger Robot
since they return different sets of values" am: fcc1bce477 am: 5e0e88fa6f am: 47d67f1c36 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/1991710 Change-Id: I4d444ef8b31827a883b4f219223c064f6184a520
2022-02-23Merge "get and set audio route allowed APIs should have different IntDef ↵Treehugger Robot
since they return different sets of values"
2022-02-18get and set audio route allowed APIs should have different IntDef sinceMd Shahriar Hossain Sajib
they return different sets of values Bug: 219947178 Tag: #security Test: atest BluetoothInstrumentationTest Change-Id: Ife2d91e455fb31fef79744ce81398d20294b135a
2022-02-14API Changes needed for apex to buildWilliam Escande
internal cherry-pick Bug: 216476895 Test: Compile Tag: #refactor Change-Id: I09108622038b174104457ca18ac6ec7949978f66 Merged-In: I09108622038b174104457ca18ac6ec7949978f66 CTS-Coverage-Bug: 217352944
2022-02-14BT FWK: Add APIs for call state, call list update for DSDAphaneendra Reddy
Add APIs for call state, call list update for DSDA. - phoneStateChangedDsDa is used for updating call state changes from DSDA service. - clccResponseDsDa is used for updating clcc responses from DSDA service. CRs-Fixed: 3108072 Change-Id: I3ba6401070bbaa264e7f81b2f305cd5ab6ae5762
2022-02-09Merge TP1A.220126.001Haamed Gheibi
Change-Id: Ibe4916c42b096976ac917991cf0c73f02512f3d4
2022-02-04Merge TP1A.220120.003Haamed Gheibi
Change-Id: I202f5093bbd13b381ea11f969fee6154ba91fa11
2022-02-01API Changes needed for apex to buildWilliam Escande
Bug: 216476895 Test: Compile Tag: #refactor Ignore-AOSP-First: AOSP will be updated later Change-Id: I09108622038b174104457ca18ac6ec7949978f66 CTS-Coverage-Bug: 217352944
2022-01-27[framework] Migration of hidden APIs to System APIsMd Shahriar Hossain Sajib
Bug: 199827901 Tag: #compatibility Test: IOP, BCST, GTS Merged-In: Ib0a205bc575e4cc3cf97eac539cd303acd878134 Change-Id: Ib0a205bc575e4cc3cf97eac539cd303acd878134
2022-01-26[framework] Migration of hidden APIs to System APIsMd Shahriar Hossain Sajib
Bug: 199827901 Tag: #compatibility Test: IOP, BCST, GTS Change-Id: Ib0a205bc575e4cc3cf97eac539cd303acd878134
2022-01-25Migrating Bluetooth resources to Bluetooth module am: 46f0869e44 am: ↵Etienne Ruffieux
41f1eda6e5 am: 2b17efdfab am: cd8180a341 Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/1931007 Change-Id: I57b927ec983e8906fcda0f9cc7a4407906e55d1c
2022-01-25Migrating Bluetooth resources to Bluetooth moduleEtienne Ruffieux
In order for the Bluetooth module to build as an apex all non-public resources must be located in the same package. Made getMaxConnectedAudioDevices system API in order for development Settings to access it. Removed isInbandRingingSupported as only usage was by bt service (config is now directly in service). Removed isBluetoothVoiceDialingEnabled as there were no usages, and no overlays. All configs used only by the Bluetooth app are moved to the Bluetooth module. Tag: #feature Bug: 211570675 Test: build Test: make RunSettingsRoboTests Change-Id: Ieed30c31fc44b5b477d43ae120ef11f96ab115ca
2022-01-24Update BluetoothHeadset#connectAudio andRahul Sabnis
BluetoothHeadset#disconnectAudio to support additional error codes for GTS Bug: 211914959 Test: atest BluetoothHostTest Ignore-AOSP-First: Depends on change only present in internal Change-Id: Ifcc6971f4cef6d966cf14fdbfd1f97b34170c0ba
2022-01-12Make BluetoothHeadset APIs used by Telecom into System APIsRahul Sabnis
Tag: #feature Bug: 195156304 Test: Manual CTS-Coverage-Bug: 211914959 Change-Id: I13d6f553f5b9d6ca7c2ae9a42450875b16cd1490
2021-12-16Remove allowBlocking from all BluetoothProfilesWilliam Escande
Since Bluetooth is becoming a mainline module, it can no longer call the allowBlocking hidden api. Instead, all interface are moved to be oneway and use a synchronous data to handle the return value. Bug: 200200870 Test: Build + start Bt and play something on speaker Tag: #refactor Merged-In: I776a6322faadca1504bce24f2b6b041e756b6448 Change-Id: I776a6322faadca1504bce24f2b6b041e756b6448
2021-12-16Remove allowBlocking from all BluetoothProfilesWilliam Escande
Since Bluetooth is becoming a mainline module, it can no longer call the allowBlocking hidden api. Instead, all interface are moved to be oneway and use a synchronous data to handle the return value. Bug: 200200870 Test: Build + start Bt and play something on speaker Tag: #refactor Change-Id: I776a6322faadca1504bce24f2b6b041e756b6448
2021-12-14Merge "Copy attributable to Bluetooth" am: b4950bde08 am: 5393f1f597 am: ↵Treehugger Robot
0e012ce997 am: bf32b65e70 Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1922462 Change-Id: I510639073615474d1774991645da87c6f71277dd
2021-12-14Copy attributable to BluetoothWilliam Escande
Attributable is called by bluetooth and it's hidden. By copying into bluetooth we are now allowed to call it Bug: 210467788 Test: build Tag: #refactor Change-Id: I73ea07c9439988ab5477c82799f718c6d81513be
2021-12-14Revert "Revert "Complete hard removal of BluetoothHeadset#setPri..."Rahul Sabnis
Revert "Revert "Hard remove BluetoothHeadset#setPriority System ..." Revert "Revert "Added removal of BluetoothHeadset#setPriority to..." Revert submission 16433519-hfp-setpriority-hardremove Tag: #feature Bug: 209335798 Test: Manual Reason for revert: CTS issue fixed Reverted Changes: I9de1b07f2:Revert "Complete hard removal of BluetoothHeadset#... If5d408e8b:Revert "Added removal of BluetoothHeadset#setPrior... I3c717fad0:Revert "Hard remove BluetoothHeadset#setPriority S... Change-Id: Id86ba6bd922cd862560a635cc9b8bd79ca0f9d28
2021-12-09Revert "Complete hard removal of BluetoothHeadset#setPriority system API that"Rahul Sabnis
This reverts commit 7d8bba4d531c96586f0ef3fb1f325d4fc663ccd8. Bug: 209335798 Test: Manual Reason for revert: Failing signature test that will be updated by paulduffin@ Change-Id: I9de1b07f2d0f4d01d9e3b57a6ddf8a4232db29b6
2021-12-02Complete hard removal of BluetoothHeadset#setPriority system API thatRahul Sabnis
was deprecated in 11 and soft removed in 12 Tag: #feature Bug: 207702651 Test: Manual Change-Id: I4dd938e0b6c6394e105deeeaee75f6a5d52f2dbf
2021-09-09Changing BluetoothHeadset APIs from @hide to @SystemApiRoopa Sattiraju
For isInbandringing API - it is used in the call journey and would change the behavior(undeterministic) of the call if not used. Stop/StartScoUsingVirtualVoiceCall is used in the BluetoothShim layer specifically for testing and mocking in the Android Apps. Seems reasonable to keep this as a SystemAPI given that it has no params and unlikely to be changed. Bug: 195160939 Tag: #feature Test: Manual Change-Id: I02b2e7e5e0be3b462f7c25b655e669e2c7fe47eb
2021-06-04Merge "More Binder call AttributionSource assignment." into sc-devJeff Sharkey
2021-06-03CloseGuard for more Bluetooth components.Jeff Sharkey
We've seen evidence of IBluetoothProfileServiceConnection and IBluetoothStateChangeCallback references being leaked, so attempt to unregister them when an object is finalized without closing. Bug: 189091551 Test: manual Change-Id: I23792d48d94578acd7fc7a5164a95171801ee721
2021-06-03More Binder call AttributionSource assignment.Jeff Sharkey
Since developers can use a BluetoothDevice object can make remote calls, it needs to have an accurate AttributionSource. Previous CLs had updated many places where these BluetoothDevice instances were passed across Binder interfaces, but this change updates several remaining locations which had been missed. Introduces new "Attributable" marker interface to offer consistent tooling when applying AttributionSource updates. Bug: 187097694 Test: atest BluetoothInstrumentationTests Change-Id: Icad3b9726591f0fbad58a493cefa5a0af7648280
2021-04-28Preserve legacy permission check behavior.Jeff Sharkey
As part of the new "Nearby devices" permission work, the registerStateChangeCallback() API has been relaxed to no longer require permissions. However, we've discovered that some apps were depending on that SecurityException being thrown, so this change restores throwing behavior for those legacy apps. Bug: 186176507 Test: atest BluetoothInstrumentationTests Change-Id: Ife536dee246b300ffb3dd78aef0b059a230f3835
2021-04-24Long-tail of AttributionSource plumbing.Jeff Sharkey
Wires up AttributionSource across the remaining long-tail of Bluetooth AIDL interfaces, ensuring that developers can accurately make calls chained back to a specific Context. Moves "for data delivery" permission checks to happen in a single location on each interface to ensure they're performed consistently with the new AttributionSource arguments. Note that "for data delivery" isn't the best name; it's designed to represent that the requested action was performed and should result in the relevant appop being noted for the caller. This change has the positive side effect of ensuring that all interfaces are consistently enforcing the BLUETOOTH_CONNECT permission, even in the case where BLUETOOTH_PRIVILEGED is also required; this is what ensures that revoking the "Nearby devices" permission takes effect for all callers. Additionally, standardizing on enforcing permissions closer to the AIDL entry point reduces the need for @RequiresPermission annotations to be carried around inside the Bluetooth stack. Bug: 183626112 Test: atest BluetoothInstrumentationTests Change-Id: I8023dda654e325b8bfa2f0cdb994ad63a2b429d4
2021-04-23More AttributionSource plumbing.Jeff Sharkey
To prepare for future work which will plumb AttributionSource values through all remaining AIDLs, we need profiles to interact directly with the specific BluetoothAdapter they were created from. This is how we'll ensure that the relevant AttributionSource can be chained down from the original Context they're obtained from. This change also marks getDefaultAdapter() as deprecated to clearly communicate that BluetoothManager.getAdapter() is the best-practice path to obtaining a correctly scoped BluetoothAdapter instance. Bug: 183626112 Test: atest BluetoothInstrumentationTests Change-Id: I1e15170d7679019bbb6e396279d6e633e3dad4d6
2021-04-21Annotations for Bluetooth broadcast intents.Jeff Sharkey
Recent work has been using Error Prone rules and annotations to reflect the current state of permission enforcement across the Bluetooth stack, and we're now in a position were we can add new permission enforcement that had been missing. We've currently standardized on saying that APIs that return device or Bluetooth state information (without sharing details about any particular remote Bluetooth device) do not need to be permission protected. Bug: 183626724 Test: ./build/soong/soong_ui.bash --make-mode Bluetooth RUN_ERROR_PRONE=true Change-Id: I53ac7a4fe1dea57316048c3cac4fa237b6ba3d38
2021-04-16More Bluetooth API annotation updates.Jeff Sharkey
This change adds a "BluetoothPermissionChecker" that ensures that all Bluetooth permission annotations are consistent. In addition, it verifies that all Bluetooth public APIs have been audited to be permission protected where relevant. We've currently standardized on saying that APIs that return device or Bluetooth state information (without sharing details about any particular remote Bluetooth device) do not need to be permission protected. This change is only annotations and has no behavior changes. Bug: 183626724 Test: ./build/soong/soong_ui.bash --make-mode Bluetooth RUN_ERROR_PRONE=true Change-Id: Ie80b15b058359bf1e9a6ee881b89cb3e5b584ca1
2021-04-14Update Bluetooth API annotations.Jeff Sharkey
Recent work has introduced a new "Nearby devices" runtime permission which protects all existing Bluetooth APIs; we've done this by defining a <split-permission> to convert the old BLUETOOTH and BLUETOOTH_ADMIN permissions into one of three new permissions: * BLUETOOTH_ADVERTISE: Required to be able to advertise to nearby Bluetooth devices. * BLUETOOTH_CONNECT: Allows applications to connect to paired bluetooth devices. * BLUETOOTH_SCAN: Required to be able to discover and pair nearby Bluetooth devices. At its core, this change begins updating the Bluetooth APIs to have correct @RequiresPermission indicating which permission is actually enforced internally. To ensure alignment across Binder, the newly added "RequiresPermissionChecker" Error Prone checker was used to discover any inconsistencies, ensuring correctness from server-side enforcement up through to the public APIs. In addition, since developers will continue building apps for both modern and legacy platforms, this change introduces new auto-doc annotations which will emit helpful consistent documentation describing the behavior of older devices that are still using the old permission model. Bug: 183626724 Test: ./build/soong/soong_ui.bash --make-mode Bluetooth RUN_ERROR_PRONE=true Change-Id: I02aa127e8e07f239561f4f2a3bbdfc6fccb82f7f