Configure newavrcp target to be "passive" when setting up AVCTP
As it stands, both newavrcp target and avrcp controller devices are configured as not "passive." This is an Android BT stack convention that AVCTP uses as a policy for handling unlikely connection collisions. When passive, a device will allow an incoming connection to take the place of it's outgoing connection, assuming the connection. Non-passive devices are strict in only allowing their outgoing connection to stay up. When two non-passive devices connect with each other, there's a 10-15% chance that the timing of events will cause each device to disconnect each other's connection, resulting in no connection being set up. AVCTP Section 5.1 says the target should allow the controller's connection to succeed. Configuring newavrcp target to be passive puts us more in line with that requirement. Note this is a temporary work-around for a larger effort around the AVCTP connection collision handling that will probably need to take place. Tag: #stability Bug: 179292409 Test: atest BluetoothInstrumentationTests; -- Also connect phone to an AVRCP controller device and wait for an unlikely connection collision. Ensure the phone allows the CT to connect over its own connection. Change-Id: I6861c78ba594d4e4ccfcf8ce9adec109f1b2d270
Loading
Please register or sign in to comment