THE ANDROID WEAR 1.5 PARADOX

Please share:


THE ANDROID WEAR 1.5 PARADOX
I take this opportunity to share my relief over a long time worry I had regarding this app. I frequently get testimonials from owners of 1st generation watches (Sony Smartwatch 3, LG G Watch, Moto 360, ASUS Zen Watch 1) expressing how happy they are the app is still maintained for their watches. I was really worried coming November 1 this could not be continued.

TARGET API REQUIREMENT STARTING NOVEMBER 2018
A new Google policy prevents app developers to update their apps, if they target earlier versions of Android. That’s the reason I had to bring both phone and watch components of Bubble Cloud to Android 8, Oreo compliance. But there is one component which cannot be brought to anything higher than API 22…

API 23 RUNTIME PERMISSIONS
API 23 brought runtime permissions, which means apps cannot obtain permissions at install time, they have to ask for it as you use the app. This is all nice, except for one small oversight. Android Wear 1.5 does not have the API routines to ask for the permissions to “Display over other apps” and change screen brightness by “writing device settings”. Google forgot…

API 23 CANNOT DISPLAY OVER OTHER APPS
So if an app obtains this permission at install time, they can change brightness and display over other apps (that’s how the app drawer implemented in all mini launchers on Android Wear). But if an app targets API 23 or higher, it has to ask for these permissions at runtime. But it cannot, because Android Wear 1.5 doesn’t allow. So, we are stuck targeting API 22…

TARGET API 26 REQUIREMENT STARTING NOVEMBER 2018
But starting November, no apps can be updated unless they target at least API 26. This is what I was so worried about:
► We cannot go higher than API 22, because then we won’t get the necessary permissions.
► We cannot update the app, if we don’t go to at least API 26.
…sounds like a contradiction!

LOOPHOLE: THE EMBEDDED WEAR APP
Intentionally or not, Google left a “side door” open: embedded watch apps are not checked for TARGET API!!! I can still embed the APK used by older watches into the phone app, and it will get installed on your watch automatically after you update the companion app on your phone. Google forgot(?)… fortunately!

I could not have known this would work. I could only hope it would.

I did not want to cause panic, but I’ve been working very hard for the last couple of months to make sure the part of the app made for older, Android Wear 1.5 is as bug free and feature rich as I could possibly make it. There was a good chance for version 9.42 to be the final update for these older watches.

But: we can now breathe a sigh of relief! …at least for the time being.

I have just pushed out the very first update (v9.42.7), which came to you utilizing this loophole. I was already blocked to upload the updated Wear 1.5 APK to the Play Store in the official way. But I have just tested it: the update did arrive to my Gen 1 Moto 360 via the embedded APK!!!

WEAR OS / ANDROID WEAR 2.x WAS NEVER IN DANGER
All that I explained above only affect older watches. Anything over Android Wear 2.0 gets the version of Bubble Cloud targeting Android 8, Oreo (API 26). You have seen the permission request screens when you first opened my app. Updates to new watches were not in jeopardy, but I am happy to announce older watches are also in the clear…

…at least for the time being.

Author: greg

the dev