我使用“com.github.javiersantos:PiracyChecker:1.2.3”是因为我的应用程序还没有集成AndroidX。
在我的应用程序的Google页面上,我有很多用户评论说,他们已经从Google商店安装了该应用程序,但是他们收到了盗版警告信息。
下面是一些示例:

还通过电子邮件获得了用户报告:

我的应用程序有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();
}
}提前谢谢。
发布于 2019-11-28 15:54:03
看来你的谷歌游戏服务是不可用的。试着在启动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服务,所以每次需要它时都要检查服务的可用性。
https://stackoverflow.com/questions/58993104
复制相似问题