2012-04-15 30 views
3

我正嘗試在尚未發佈的應用程序中使用Android Marketing Licensing。Android Market Licensing(LVL)總是返回RETRY

我已經使用ServerManagedPolicy安裝並集成了LVL庫。

問題在於,LicenseCheckerCallback.dontAllow無一例外地在執行許可證檢查時被調用並帶有「重試」響應。

我已經通過關於這個問題的很多職位和閱讀......

  • 清單文件包含CHECK_LICENSE許可
  • 因爲我已經上傳到開發者,我正在運行完全相同的.apk文件帳戶
  • 我添加了一個測試用戶到開發者帳戶
  • 的響應是上運行2.3
  • 響應運行2.2和設備仿真器相同的是相同的是否LO gged在作爲測試或顯影劑用戶
  • 的響應是相同的I是否選擇了許可或開發者帳戶
  • 內NOT_LICENCED雖然這兩個仿真器和設備具有在所有時間的因特網連接,響應實際上是相同的時沒有連接存在
  • 的代碼是不是在

基本上是由文檔提供我的代碼的那一刻混淆...

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

mLicenseCheckerCallback = new MyLicenseCheckerCallback(); 
mChecker = new LicenseChecker(
      this, new ServerManagedPolicy(this, 
        new AESObfuscator(SALT, getPackageName(), deviceId)), 
      BASE64_PUBLIC_KEY); 

mChecker.checkAccess(mLicenseCheckerCallback); 

我還有什麼選擇可以使這項工作成功?

+0

我有同樣的問題,使用LVL提交給Play商店的應用程序,它只出現在2.2上,但不出現在2.3.3或4.x上。我讀你的問題,並注意到你的LicenseChecker構造函數中的第一個上下文參數不是應用程序上下文。我將它更改爲getApplicationContext,就像您在下面的答案中所做的那樣,現在它可以工作。 – ubzack 2012-05-03 17:43:15

回答

3

答案竟然是這裏... Android Context.bindService always returns false and ServiceConnection object is never triggered

權檢查正在從一個標籤頁調用,所以代碼應該是...

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

mLicenseCheckerCallback = new MyLicenseCheckerCallback(); 
mChecker = new LicenseChecker(
     getApplicationContext(), new ServerManagedPolicy(this, 
       new AESObfuscator(SALT, getPackageName(), deviceId)), 
     BASE64_PUBLIC_KEY); 

mChecker.checkAccess(mLicenseCheckerCallback); 
相關問題