SamsungA8
A mock environment for the Samsung A8 with Android 14.
That device fails to properly negotiate the Maximum Transfer Usage (MTU) and Data Length Extension (DLE). It incorrectly claims, that can only transfer 27 bytes in a single LL packet, while later trying to send 251 bytes.
This causes the peer device to terminate the connection. A workaround for that is not requesting MTU higher than 23 (maximum value length equal to 20 bytes).
Parameters
The device name, by default set to "Samsung A8".
Whether Bluetooth is enabled on the device.
Whether the BLUETOOTH_SCAN permission is granted.
Whether the BLUETOOTH_CONNECT permission is granted.
Whether the BLUETOOTH_ADVERTISE permission is granted.
Whether the app is not using results of Bluetooth LE scanning to estimate device location. By default, neverForLocation flag is assumed.
Whether the fine location permission is initially granted.
Whether location service is enabled on the device.
A callback that will be called when the app requests to advertise. The callback should return TX power level used for mock advertising.
A callback that will be called when the mock central manager requests to scan for devices. It returns whether the scan was successful, secretly failed, or returned an error.
Constructors
Properties
A callback that will be called when the app requests to advertise. The callback should return the TX power level used for mock advertising.
Whether the BLUETOOTH_ADVERTISE permission is granted. The permission can be set to true to emulate it being granted in runtime.
Whether the BLUETOOTH_CONNECT permission is granted. The permission can be set to true to emulate it being granted in runtime.
Whether the BLUETOOTH_SCAN permission is granted. The permission can be set to true to emulate it being granted in runtime.
Whether the fine location permission is granted. The permission can be set to true to emulate it being granted in runtime.
Whether the device can scan for Bluetooth LE devices advertising on LE Coded PHY as Primary PHY.
Some Android devices claim they can only transmit 27-byte long packets on L2CAP in the LLCP Data Length Update procedure, while later trying to send 251 bytes. This causes the peripheral to terminate the connection. This flag simulates this issue. It was encountered e.g. on Samsung A8 and Samsung A8 Tab.
Some early Android devices were sending only one Scan Request message for a single device per scan. Non-connectable devices were reported continuously, but connectable devices were reported only once. The client had to stop and start scanning again to receive further advertisements. This flag simulates this issue. It was encountered e.g. on Nexus 4.
A callback that will be called when the mock central manager requests to scan for devices. It returns whether the scan was successful, secretly failed, or returned an error.