Question

So, I've setup the Android LVL with my application to check for licensing. This seems to work great with the Test Accounts. The problem is, if I turn the phones internet connection off and try to run the app, the licensing check will fail and tell me it's NOT licensed!

One thing is, why does it tell me the application is NOT licensed and more importantly, how can I have the application 'remember' if it is licensed or not.

Was it helpful?

Solution

Apparently the answer to this is that the license is not cached when testing, but is when on the market. I created a small app to test this and it works!

OTHER TIPS

Sorry but, I too confirm that airplane mode results in a failure to rely on any cache. Theoretically, if the app was online and pinged the license server right before going offline, then it might work. However, if the phone is offline for any significant amount of time, there is no caching mechanism. Just look at the code. I filed a bug against android : http://code.google.com/p/android/issues/detail?id=12978

Because my users of Shout n' Snap shoutnsnap.com are ALREADY confirming this stupid behavior.

I've made a workaround using a 2 part challenge on the client side. EG:


IF LICENSED:
  PERSIST random key as LK
  PERSIST obfuscated random key as OLK
ELSE:
  if (deobfuscate(OLK) == LK) 
    GRANT ACCESS
  ELSE:
    GET LOST 

Code is here: http://code.google.com/p/androidbest/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top