Just wondering, if developed an app is a paid app in Google Play.
I know Android device can side load apps.
So, what's stopping people just save the installation APK and install on many devices which have not paid for the app?
Use the following
private string GetInstaller(Context context)
string installer = string.Empty;
installer = context.PackageManager.GetInstallerPackageName(context.PackageName);
installer = (string.IsNullOrEmpty(installer)) ? "Not known" : installer;
and then test like this in say your OnStart()
string installer = GetInstaller(this);
if (installer != "com.android.vending")
Log.Verbose(logTag, "Installer Name " + installer.ToString());
Nothing technically can stop the sideloading of your paid apps. The standard way to combat this is by only releasing updates to your app through the app store. That way side loaded apps are outdated.
It does technically violate Google Play's Terms of Service to pass an APK to another user or device that was originally from the Google Play store, but that's the nature of piracy in technology in general.
Just keep updating your app. You could go as far as to invoke a check against your server with the version of the app installed, then lock the app out if it is invalid. This is how Adobe handles piracy of their products. If you were to pirate something like Photoshop, Adobe can be made aware of it through signature checks against the server. So once you're connected to the internet, and the request goes through, it can lock the app up.
Xamarin Inc., as a wholly-owned Microsoft subsidiary acting as a separate legal entity, adheres to the Microsoft Privacy Statement: Privacy & cookies