Android 7 Bluetooth Problem

I am really unhappy that Google’s Android 7 started living with its own life against its user will. Android 7 will turn on and off Bluetooth connectivity on its own and scan the area itself, even that you turn off the Bluetooth device by hand. It looks that you have no control over your own phone anymore! Shame on you Google! Really poor design idea :-(

Update: I have reported this issue to Google Security Team, they got interested, so this does not seem to be a “standard feature”.. maybe a phone design flaw or firmware/microcode bug..

Android Open Source and Hardware Obsolescence

Why only NEXUS devices are sensible choice for Advanced Android Users and Developers? Because NEXUS device vendors provide source code and device drivers.

This makes is possible to re-compile and re-create any customization of the Android by advanced users and developers. The most popular among them is CyanogenMod based on AOSP (Android Open Source Project).

Why is such customization really necessary? Because Vendors does not keep up with the Android development, their releases are flawed, contains unwanted modifications, quite often development is abandoned just after product release.

I know that Drivers Development is time and money consuming task for Vendors. Still, providing source code for device drivers would make it possible to run alternative and/or customized OS, also prolong device life for second-hand users in poor countries. Vendor sells the device anyway and Users can make fixes and customization. Why this Win-Win scheme is so hard to achieve in reality? Is really enforcing sales with mass garbage so important?

Google Android Voice Dial Fail

Another HALL OF SHAME entry goes to Google for missing reliable Voice Dial functionality. It is over 5 years of bleeding edge development of Android, thousands of people in the most powerful IT corporation on this planet, most advanced Text-To-Speech and Speech-To-Text engines available, and still, no reliable Voice Dial function. People that use phone to work simply need a Bluetooth or Wired Headset that is able to correctly dial a designated phone number they want to make a call. These are daily work basics. Learn from Apple iPhone. Until these basic functionalities are provided first I see no reason to introduce thousands of not-yet-working or never-working-will-one-day-fix stuff that only create false image of endless possibilities, potentially, but not at all functional in the real world scenarios..

I have Accessibility, Text-To-Speech, Voice-Input, OK-Google, Google Search, Handsfree, Voice Dialer, Google Voice Typing, Offline Speech Recognition, Bluetooth and Wired Headset Support. Still, it is impossible to dial a phone number via Headset that would not involve touching the phone. Really sad :-(

Update: After several days of struggle (using unsupported flashing tool and ripping the firmware from an official software that declined to work) I have managed to run Android 6.0 (7.0 is already out) on my mobile. Here Google seems to have replaced “Voice Dial” application with “Google Search” and now you can ask Google to dial a number for you. Well, it only works when you are online, and now Google knows exactly what you do all the time. What a breakthrough! ;-)

Crap by Sony

I have recently bought Xperia M5 mobile phone (400EUR) and SBH54 bluetooth headset (100EUR) both from Sony. W was previously happily using cheaper Xperia Z1 Compact mobile phone (250EUR) and Motorola HT820 bluetooth headset (30EUR). I DID NOT EXPECT TO GET SUCH A CRAP FROM SONY!

Xperia M5 D6503 has several issues that makes it a phone for a child, at most, including Bluetooth Headset problems that makes it impossible to talk, UTB OTG problems, no MHL support (HDMI-over-USB), no Cardboard VR support, no Repair from Xperia Companion for unlocked devices, and many more. This is NOT a phone for a developer not even to the working person, just a crappy toy. I consider ALL XPERIA “M” SERIES AS JUNK! The only sensible well designed both hardware and software seems to be “Z” series, maybe “X”, DO NOT WASTE TIME AND MONEY ON XPERIA “M” SERIES.

SBH54 Bluetooth Headset looks really promising “wearable assistant”, but at the moment it cannot really work well with one device, not to mention offered multipoint (only two peers at most!!!) connection that worked well in older devices. For instance I had no problem with 10 year old Motorola to listen MP3 from a computer and have a phone ready to talk in the same time which is not possible with SBH54. I only get frustrated with this crap, and other users as well complain on your official forum. This device is still a pure chaos and works unpredictably. Cannot really perform its basic function “headset” with Xperia M5. Android application does not work as Service and disappears when you need it most. You need to pair it again with the same devices after poweroff. Headphones sound it very good but they break apart. Its not really useful nor reliable in any way at the moment. Hope it gets a firmware update soon and I could take it out from the trash.

sbh54

This is really sad because hardware looks very well for both devices. In theory parameters and functions look fine as well. However, Software/Firmware makes it useless buggy annoying junk. Shame on you Sony for releasing such a buggy junk! I am happily placing Sony, XperiaM5 and SBH54 into HALL OF SHAME, with no respect to those two unfortunate failures. Time-To-Market is not worth the Respect and Customers that you loose.

World is now at point now where companies release happily a new product that is still at early prototype stage and don’t even give a shit about that.. people loose time and money for this crap..

Note: After all struggle and years of play with Android I consider only NEXUS to be sensible and reasonable choice to work with. Sorry.

HBO GO PL Android Fail

Today is my last day with HBO in Poland. I could not even imagine how bad can commercial mobile application be until I found HBO GO PL Android. This is such FAIL that I am not going to pay anymore for this crap. I have waited over a year for things to get better. I bet most of the 5 star ratings are fake. You don’t give a shit about user feedback, so users will to the same with you. Goodbye HBO..

Screen Shot 2016-09-04 at 18.02.41

On the other hand Netflix has just entered Polish VoD market with a far better application. They responded to my feedback in less than minute and implemented suggested (localization) changes in two days. Now that is good cooperation! Learn from that!

Google Hangouts related feedback

I have just reported several issues and ideas related with this nice Google Hangouts Android application:

  • The name Hangouts is not popular and hard to remember. Abandoning “Google Chat” or “Google Talk” was a bad idea. People tend to remember short names and popular words such as “Skype” or “Viber”. This may be funny but people really cannot remember “Hangouts” well.
  • Receiving calls is misleading. There are several different ways to answer an incoming call in Hangouts. Most common way is to press a button and then drag it onto an icon that is not visible until you press a button. Another way is top view pop-up which could have color buttons in addition to small icons. Older people have problem with this. Average non-geek user simply needs Green Answer and Red Reject button.
  • Hangouts would be simpler to use and more popular if it worked just as an ordinary Phone Call application. Non-geek users have this habit already on how to use Phone Call application, that Hangouts should leverage.
  • Hangouts voice/video call should be available directly from a Contact Book if gmail address is present. Just as phone call.
  • There are Android devices that offer hardware phone buttons (such as LG Wine Smart). Green Connect and Red Disconnect buttons should be also available to perform actions in Hangouts.

These simple ideas arised from observing older people trying to use Hangouts to videocall their family members..

Android USB OTG HOST

Most modern Android based devices support USB OTG function [1]. USB is a Host centric bus that means there is only one Host device and many different Devices can be connected to it. Using inexpensive USB-OTG cable it is possible to swich smarphone USB port from Device to Host, and connect external devices, if chipset and OS build allows this. Google provides detailed information on how to code USB Host [2] in your application.

[1] http://www.usb.org/developers/onthego/
[2] https://developer.android.com/guide/topics/connectivity/usb/host.html

Google Android Nexus Device Un-Brick

GoogleNexus

If you happen to brick your Google Nexus device you can always use stock ROM images [1] to revert it to a default and operational state. Package contains not only OS but also bootloader and radio firmware images!

I have bricked my device by installing custom firmware that messed partitions layout inside a Flash Memory. I have seen lots of people having similar problem of endless bootloader-loop. There is no need to send a device to a service when bootloader is operational. All you need is a stock firmware image from Google [1], USB cable, and fastboot utility from Android SDK. If you happen to damage a bootloader, then hardware manipulation at low-level is necessary over JTAG, I can help to recover your device in that case.. no worries :-)

[1] https://developers.google.com/android/nexus/images

Android: dynamic string processing

There are two easy ways to replace text on-the-fly in Android. This may be required if you want to insert some text/values into displayed text, or construct a data packet of some sort. Both require some code to replace given part of the string.

First is to use HTML/XML tags and then handle them with your own implementation of Html.handleTag(). Unfortunately, String conversion removes the tag in the background, so you need to escape < mark with &lt; in the string resource. This approach is good when you want to put variables inside a string and then process them later in one place using tag handling – that is when you want to have a tag handled at processing time – so you only change tags and one processing routine.

Second is to use Format Strings instead of XML/HTML tags. It seems simpler, faster, and evades hidden conversion problems. getString(resource, ...) works like a well known printf(string, ...). This approach is good when you want to process each string manually at runtime, but strings and variables are hardcoded.

[1] http://stackoverflow.com/questions/7899563/android-converting-between-strings-spannedstrings-and-spannablestrings/34556513#34556513

Heimdall on FreeBSD

Heimdall is an Open-Source utility to work with Android devices manufactured by Samsung. It allows to flash firmware components into memory via FastBoot/ODIN+USB. I have created a patch to build this nice tool on FreeBSD OS (QT gui works as well, to build it you need qt-{gui,qmake,uic,moc,rcc,…} packages installed). When patch is included into the project sources and release is done, I will prepare a FreeBSD port for this nice utility which is only missing a memory dump and live boot to be totally perfect :-)

Read More

Screenshots in Android 4

If you wonder where did the power menu option to make a screenshot go in Android 4 – you need to long press Power + Volume Down buttons together :-)

Still I don’t know how to disable screen inside ongoing call when my Power button is assigned to end call, or how to end call when screen is locked and Power button is assigned to lock screen ;-) Design Fail or hidden solution somewhere there deep inside..? Apple simply use one button to end/diall call and separate mechanical switch to lock the device – simple functional and elegant.. but hey why Android does not use this solution as well, is “button switch pair” already patented by Apple? ;-)