So I would like to make a free app with full functionality loaded in. The pro functionality will be disabled until the app detects a licensed pro key. And of course I would like
You can send intents between the main app and the key app. If you are using LVL in the key app then an example callback would be:
private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
public void allow() {
Log.i("Key", "License Accepted");
Intent i = new Intent();
i.setAction("intent.to.call.on.success");
i.putExtra("licenseresult", 0);
c.sendBroadcast(i);
mChecker.onDestroy();
}
public void dontAllow() {
Log.e("Key", "License Denied");
Intent i = new Intent();
i.setAction("intent.to.call.on.failure");
i.putExtra("licenseresult", 1);
c.sendBroadcast(i);
mChecker.onDestroy();
}
public void applicationError(ApplicationErrorCode errorCode) {
Log.i("Key", "LR Error");
Intent i = new Intent();
i.setAction("intent.to.call.on.error");
i.putExtra("licenseresult", 2);
c.sendBroadcast(i);
mChecker.onDestroy();
}
}
You would set up broadcast receivers in both apps to initiate the license check and handle the result. e.g.
public class License extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("intent.called.to.initiate.request")) {
// Initiate the license request here (possibly using a service)
return;
}
}
}
You should limit access to the intents using certificate based permissions to prevent other apps being able to send spoofed "License Success" intents.
http://developer.android.com/reference/android/content/BroadcastReceiver.html#Permissions
Short version.
Define permission in manifest
< permission android:name="my.package.LicenseCheck" android:protectionLevel="signature"/>
Use Permission in receiver declaration: