2

我尝试使用 Android 的新许可服务,但遇到了一些麻烦。我在主要活动中的代码如下所示:

  mLicenseCheckerCallback = new MyLicenseCheckerCallback();

  String deviceId = Secure.getString(MainTabActivity.this.getContentResolver(), Secure.ANDROID_ID);

    mChecker = new LicenseChecker(
            MainTabActivity.this, new ServerManagedPolicy(MainTabActivity.this,
                new AESObfuscator(SALT, getPackageName(), deviceId)),
            BASE64_PUBLIC_KEY  
            );

        mChecker.checkAccess(mLicenseCheckerCallback);

(基本上只是Android在线文档的显示代码。如果允许,则回调通过,如果不允许,则显示一条消息并退出应用程序。到目前为止一切都很好。

问题是它在调试器中运行良好,但是当我将它发布到市场并升级我的应用程序时(我已经用我的个人 gmail-accout 购买了我的应用程序版本,所以我是合法用户)我得到了我的应用程序未获得许可的错误。我什至已将我的个人 gmail 地址添加到我的市场资料中的白名单中,并将状态设置为“许可”,但它仍然出现错误。你有什么建议吗 ?

4

2 回答 2

0

我有同样的问题并添加

<uses-permission
        android:name="com.android.vending.CHECK_LICENSE"></uses-permission> 

到清单,为我做了诀窍!

于 2011-07-02T18:48:49.783 回答
0

许可服务的回调有时不会在几秒钟内发生 - 如果存在网络延迟,情况会更糟。它通常会在成功尝试后将答案缓存在服务中,以帮助减少以后应用程序启动的延迟。

您很可能需要将关闭应用程序(或禁用功能)的逻辑移到 UI 体验的后期。

如果用户关闭应用程序并稍后再试,我也有一些错误的否定被纠正。

于 2010-12-14T23:59:18.053 回答