------ This is post is not a bug report but about sharing experience ------
We have a pretty matured BLE device (powered by SS1 bluetopia stack) and iOS App,
the BLE device works with iOS App nicely.
We recently started building the Android App for BLE device.
However, it always takes a very long time for the Nexus 7 to connect to the BLE device,
once connected, it would not find any services. Packet sniffer shows that once the connection is on,
the android device did not send any request to discover services.
The same android device can find another commerical BLE device's service easily and quickly.
So I used packet sniffer to compare the advertisement packets between our device the other commercial one.
It turns out that the flag HCI_LE_ADVERTISING_REPORT_DATA_TYPE_FLAGS is different:
ours____ : = 0x02 = HCI_LE_ADVERTISING_FLAGS_GENERAL_DISCOVERABLE_MODE_FLAGS_BIT_MASK
the other_: = 0x06 = HCI_LE_ADVERTISING_FLAGS_GENERAL_DISCOVERABLE_MODE_FLAGS_BIT_MASK + HCI_LE_ADVERTISING_FLAGS_BR_EDR_NOT_SUPPORTED_FLAGS_BIT_MASK;
Once I changed my setting to 0x06, Nexus 7 can connect and discover services quickly.
The experiments showed that iOS is not so picky, either 0x02 or 0x06 would work, but for Anroid 4.3,
the flag value has to be 0x06.
Most default setting with SS1 or T1's example are using flag value 0x02.
So please be aware of this issue when working with Android devices.
Stonestreeone support,
it would be great if you can confirm the suggested changes and let all your customers to be aware of this issue.