Yes I know, but that's not what I'm having problems with. I see in my scenario (see first post) that I get back NOT_MARKET_MANAGED. And that translates in my app to 'not licensed' of course, because that's also returned for an app not in the market. But I expected LICENSED_OLD_KEY back based upon the LVL documentation. Since the scenario doesn't return that, will the scenario return LICENSED_OLD_KEY when the app is published, or will it also in that case return NOT_MARKET_MANAGED and thus all user with an older copy are forced to upgrade? If so, I need to tell my users that an upgrade should fix a 'not licensed' message if they did pay for it before... Totally not user-friendly of course!
Hmm, might have found the answer regarding to how the default ServerManagedPolicy has implemented it when LICENSED_OLD_KEY is returned (though that does *not* answer my question yet why I don't get LICENSED_OLD_KEY back in my scenario with an unpublished but saved app): public boolean allowAccess() { long ts = System.currentTimeMillis(); if (mLastResponse == LicenseResponse.LICENSED) { // Check if the LICENSED response occurred within the validity timeout. if (ts <= mValidityTimestamp) { // Cached LICENSED response is still valid. return true; } } else if (mLastResponse == LicenseResponse.RETRY && ts < mLastResponseTime + MILLIS_PER_MINUTE) { // Only allow access if we are within the retry period or we haven't used up our // max retries. return (ts <= mRetryUntil || mRetryCount <= mMaxRetries); } return false; } Suprised it isn't handling LICENSED_OLD_KEY separately... since it says here http://developer.android.com/guide/publishing/licensing.html#server-response-codes "By default, the LicenseValidator class in the LVL provides all of the necessary handling of these response codes for you." But that should say I think: "... the LicenseValidator only allows access if the result is LICENSED or within the retry period". In the table below that text it it says kindof that the default LicenseValidator is not allowing access (notice the word Optionally): "Optionally allow access according to Policy constraints. Can indicate that the key pair used by the installed application version is invalid or compromised. The application can allow access if needed or inform the user that an upgrade is available and limit further use until upgrade." But that's getting nasty code-wise: in LicenseCheckerCallback I only have allow, dontAllow and errorCode. I don't have access to the detailed response there, right? So how to make distinction there, that is, check that LICENSED_OLD_KEY is returned? Might have to extend LicenseCheckerCallback with an oldKey() method or similar... On 28 sep, 22:47, Bret Foreman <bret.fore...@gmail.com> wrote: > My understanding is that you test for a valid server response in your > code. So if you're not testing in the old code, it will run fine. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en