Recently I found that two feature sets of Android to be seriously lacking. There is also a feeling that other features (motion sensors) are “punt ware”. The biggest short fall has been implementation of Low Energy Bluetooth --- something that runs find on apple devices– is totally lacking.
Issue 43473: Bluetooth Smart (Low Energy) on Android
Issue 37525:android api support for Bluetooth
Issue 33371: Support for Bluetooth 4.0 Low Energy Profile on Galaxy Nexus
Recently, I did some work with a friend on Near Field Communications. The Android libraries work – sort of, they allow demo code showing simple operations to be written but fail to fully implement the complete specification.
Recently I have also been working hard to use the motion sensors and found that they work adequately for game play but if you are wishing to use them for internal navigation , there is great angst in code-ville…
Having spent time in Microsoft Developer’s Division of days of old, I see the trend to do agile development/sprints as part of the cause. Sprints tend to cherry-pick the essential or easiest items to implement. The result is that given a specification (like BLE or NFC), the top 80-90% of the specification gets done and the rest falls below the radar and is never implemented. In the old traditional world, there was often a goal to insure 100% compliance and possible certification. Certification is no longer a significant marketing aspect; “We support XYZ” no longer means we implement all of XYZ – instead, it is “We do some of the things in the specification – the IMPORTANT ones…”
I believe that this is just a phrase, one that will run it course in time….but until that happens, beware of marketing hype of what is supported!