My app depends on com.google.android.vending.licensing for license verification. If the app has been paid, it enters a licensed state where some functions are unlocked. This is done through the following callback functions:
public void allow(int reason) { }
public void dontAllow(int reason) { }
This works perfectly unless, of course, the Google servers don’t respond. In this case I did’t get a response at all (neither allow nor dontAllow was called). From what I understand, the first time this license check succeeds, the underlying library will cache the response for later use. But… the problem remains.
Q: If the Google servers don’t respond the first time I run my app, should I assume the app is licensed?
No. Just require an internet connection for activation and be upfront about it; your clients probably have 3G anyway.
This method of assuming the servers responded positively for validation has allowed countless software to be pseudo-licensed, simply by cutting the internet access on first launch.