2010-09-12 124 views
2

我試過使用Android的新許可服務,而且我面臨一些麻煩。我的主要活動代碼如下所示: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地址添加到我的市場檔案中的白名單中,並將狀態設置爲「許可」,但它仍然出現錯誤你有什麼建議嗎?

+0

您是否在對代碼進行混淆?我遇到了一些由混淆器搞砸的問題。 – 2010-09-12 22:38:21

+0

雖然我們談到了這個問題,但是當設置爲「正常響應」時,授權服務器是否會拒絕開發者帳戶?我沒有在野外安裝它。上面的帖子讓我有點謹慎。如果您發現答案,請更新。 – Jason 2010-09-13 00:19:13

+0

是的,我混淆了代碼。我會嘗試不混淆並讓你知道。如果您有任何其他建議,請告訴我。我有兩個帳戶:在我的手機上發佈我的應用的開發者帳戶,使用我的私人郵件的私人帳戶。我用我的私人帳戶購買了應用程序,因此應該註冊 – Daniel 2010-09-13 06:08:24

回答

0

許可服務的回調有時不會發生幾秒鐘 - 如果網絡滯後則更糟。在成功嘗試幫助減少後期應用啓動的滯後之後,它通常會在服務中緩存答案。

您很可能需要將關閉應用程序(或禁用功能)的邏輯移到稍後的UI體驗中。

我也有一些錯誤的消極的用戶,如果他們關閉了應用程序,並在稍後再次嘗試更正。

0

我有同樣的問題,並添加

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

到清單,並獲得成功的我!