Android许可证应用程序显示未许可?

时间:2013-03-23 06:53:16

标签: android google-play android-lvl

我正在为付费应用程序执行app android许可证。在这个应用程序中,我给了64基本公钥&根据我的应用程序详细信息,盐20个随机数。我的代码如下:

初始化变量如下:

  private static final String BASE64_PUBLIC_KEY = "xxxxxx";
  private static final byte[] SALT = new byte[] {xxxxxxxxxxxxxxxx};
  private LicenseChecker mChecker;
  private LicenseCheckerCallback mLicenseCheckerCallback;

在oncreate()中这样做:

   String deviceId = Secure.getString(getContentResolver(),Secure.ANDROID_ID);
   mLicenseCheckerCallback = new MyLicenseCheckerCallback();
   mChecker = new LicenseChecker(this, (Policy) new ServerManagedPolicy(this,
                   new AESObfuscator(SALT, getPackageName(), deviceId)),
                   BASE64_PUBLIC_KEY);
   mChecker.checkAccess(mLicenseCheckerCallback);

和我的许可检查程序回调函数如下:

      private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
           @Override
           public void allow(int result) {
                   if (isFinishing()) {
                           return;
                   }
           }

           @Override
           public void applicationError(int errorCode) {
                   if (isFinishing()) {
                           return;
                   }
           }
           @SuppressWarnings("deprecation")
           @Override
           public void dontAllow(int result) {
                   if (isFinishing()) {
                           return;
                   }
                   showDialog(0);
           }
    }

从此我导出了apk文件并在Google Play中存储为草稿并使用测试帐户进行测试,这些测试帐户在Google Play中作为测试帐户和我的设备中使用的相同帐户提供。每次我只测试Not Licensed with dialog时,我测试了很多次这个应用程序。问题是什么? 请帮助我..

1 个答案:

答案 0 :(得分:2)

由于您的公钥,在Google Play中出现此错误会为您从Google帐户发布的每个新应用产生不同的Base64-encoded RSA public key。在为您的应用程序创建apk之前检查该密钥。