Search This Blog

13 December 2011

LVL Testing

 In the beginning, my phone was setup with a Google Apps account (to cut down on the general spam).  When using the Market, it was billing my gmail account for the purchases.

A few months back, the Android Market updated itself from a tabbed list of applications to a Windows-8 combination of application links and general advertisements.  During that change, they enabled the ability to use multiple accounts with the Google Market.  Initially, I was very excited by this prospect.

Unfortunately, while applications were still being purchased with the gmail account - they were now divided into two accounts.  The old ones tied to the App account (which was not allowed to purchase anything anymore due to Google Checkout not being available to the Google Apps users) and the new ones tied to the Gmail account itself.  Why all apps weren't tied to the account that actually paid for them, I have no idea.  I contacted Google about this issue and they suggested that I contact all 184 old application developers and ask them politely to change the email address associated with my purchase.  As an app developer that has no idea how to do this myself, I wasn't about to do that.

Enough back story... onto the issue at hand... the Android Market Licensing...

If you have ever published "Copy Protected" apps in Android, you know that Google started suggesting (with bright red warnings) that you switch to the new LVL approach as the old one was going to go away.  Ok, that makes sense.  I look through the docs (which are a little overwhelming considering what is actually happening) and decided that the best thing I could do is try the sample LVL application first - then worry about securing it after I had it working.

Grabbing the LVL library and sample code from the SDK, I build it and test it.  Results were not very good.  Here are some things I ran into:
  • Sometimes it said it was not compatible with my Atrix... then randomly decided to start saying it was compatible.
  • When publishing an updated version, both the device and the emulator reported (for about 10 minutes) that licensing was not managed by the market.
  • When on a device tied to multiple accounts, it only counted as licensed if the primary account (first one used on the phone) is the one that bought the application.
  • If you want to delete the primary account so you can change the order, you have to factory reset the device.
  • Oh, and of course, it can't be used on Free applications - which leads to lots of Market entries for demos and keys and trials.
So what to do?  Google says we have to quit using the copy protection scheme. Using LVL will break hundreds if not thousands of my users.  Doesn't sound like there are many options, does it?

11 December 2011

Publishing for GoogleTV

Yesterday I received the 3.1 update to my Logitech Revue box.  Definitely better than it was, if for no other reason than the Market is finally there.  So what's a developer to do besides install their own apps?

Unfortunately, FetLife wasn't available in the Market.  Luckily, I had already expected that.  I head over to the migrating page and try to figure out what all I need to change.

Turns out, the only thing I had to do for it to show up in the Market (for GoogleTV) was add this one line to my manifest.

    <uses-feature android:name="android.hardware.touchscreen" android:required="false">*lt;/uses-feature>

This effectively makes the market quit filtering it out.  After republishing, I go back to my GoogleTV and check the Market.  Yep, there it is. (Note: the Market DOES allow multiple user accounts, so if you are using an account other than the one you purchased the app with; you have to add that account as well, or repurchase).

Now, at first, while it showed up, it said it was incompatible.  I looked around online for a bit, then found this excellent resource on how to use ADB with my GoogleTV.  You can walk through the article, but the jist of it is:

  1. Tell GoogleTV that your dev box is going to be the debugging IP
  2. adb connect googletv-ip-address
  3. adb devices/logcat/etc
So, I fire up logcat, relaunch the Market and... oh, it will let me install it now.  It appears that it just takes a little while (15 minutes?) before the Market has analyzed it?

Anyways, app published and installed on the big screen.  Now to disable things like camera and vibrate and....