我使用的是com.github.javiersantos:PiracyChecker:1.2.3,因为我的应用尚未集成AndroidX。
我在应用程序的Google Play页面上收到来自用户评论的大量报告,这些报告他们已经从Google Play商店安装了该应用程序,但收到了盗版警告消息。
以下是一些示例:
还通过电子邮件获得了用户报告:
我的应用程序有4k条评论,其中只有3条是这样的,但是我不知道确切的用户数量,因为可能有一些用户对此问题未发表评论。
发生了什么事?
我这样使用它:
public static void showPiracyActivityIfNeeded(final Activity activity) {
if (!BuildConfig.DEBUG) {
//Releaseb build, piracy check.
new PiracyChecker(activity)
.enableInstallerId(InstallerID.GOOGLE_PLAY)
.callback(new PiracyCheckerCallback() {
@Override
public void allow() {
}
@Override
public void dontAllow(@NonNull PiracyCheckerError piracyCheckerError, @Nullable PirateApp pirateApp) {
Intent intent = new Intent(activity, PiracyWarningActivity.class);
activity.startActivity(intent);
activity.finish();
}
})
.start();
}
}
提前感谢。
似乎您的Google Play服务不可用。尝试在启动PiracyActivity
之前先检查一下:
const val PLAY_SERVICES_RESOLUTION_REQUEST = 9000
fun AppCompatActivity.checkPlayServices(): Boolean {
val apiAvailability = GoogleApiAvailability.getInstance()
val resultCode = apiAvailability.isGooglePlayServicesAvailable(this)
if (resultCode != ConnectionResult.SUCCESS) {
if (apiAvailability.isUserResolvableError(resultCode)) {
apiAvailability.getErrorDialog(this, resultCode, PLAY_SERVICES_RESOLUTION_REQUEST)
.show()
}
return false
}
return true
}
然后:
public static void showPiracyActivityIfNeeded(final Activity activity) {
if (!BuildConfig.DEBUG && activity.checkPlayServices()) { ...
还要注意,由于种种原因,有很多设备都关闭了Google Play服务,因此,每次需要时都要检查服务的可用性。