2011-09-16 1 views
2

Google 라이센스 서비스를 사용하는 Android 앱을 보유하고 있으며 라이센스 확인에 실패했다고 불평하는 신규 사용자 중 약 5 %가 정기적으로 이메일을받습니다. 그것은 나의 판매에 영향을 미치기 시작하고있다. 내가 뭐 잘못하고있는거야?Android 라이센스 확인이 너무 많이 실패합니다. 내가 잘못 했나요?

this.licenseCheckerCallback = new MyLicenseCheckerCallback(); 

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

// Construct the LicenseChecker with a Policy. 
this.licenseChecker = new LicenseChecker(
    this, new ServerManagedPolicy(this, 
      new AESObfuscator(SALT, getPackageName(), deviceId)), 
      BASE64_PUBLIC_KEY // Your public licensing key. 
    ); 

this.checkLicense(); 




private void checkLicense() { 
    this.licenseChecker.checkAccess(this.licenseCheckerCallback); 
} 


private class MyLicenseCheckerCallback implements LicenseCheckerCallback { 

    public void allow() { 
     // Don't do anything, let the user work in peace. 
    } 

    public void dontAllow() { 
     if (isFinishing()) { 
      // Don't update UI if Activity is finishing. 
      return; 
     } 
     // Should not allow access. In most cases, the app should assume 
     // the user has access unless it encounters this. If it does, 
     // the app should inform the user of their unlicensed ways 
     // and then either shut down the app or limit the user to a 
     // restricted set of features. 
     // In this example, we show a dialog that takes the user to Market. 
     showDialog(DIALOG_NO_LICENSE_ID); 
     MyActivity.this.dialogIdCurrentlyShown = DIALOG_NO_LICENSE_ID; 
    } 

    public void applicationError(ApplicationErrorCode errorCode) { 
     if (isFinishing()) { 
      // Don't update UI if Activity is finishing. 
      return; 
     } 
     // This is a polite way of saying the developer made a mistake 
     // while setting up or calling the license checker library. 
     // Please examine the error code and fix the error. 
     MyActivity.this.applicationErrorMessageForDialog = String.format(getString(R.string.application_error), errorCode); 
     showDialog(DIALOG_APPLICATION_ERROR_ID); 
     MyActivity.this.dialogIdCurrentlyShown = DIALOG_APPLICATION_ERROR_ID; 
    } 
} 

답변

2

잘못된 것은 아닙니다. 나는 같은 문제와 다른 사람들도 가지고있다. 그리고 많은 당신이 할 수있는,하지만 여전히이 아니다 :

  1. 열기 Google이 LVL의 최적의 성능을 말하고 합법적 인 사용자에 영향을 미치고있는 지원 티켓.
  2. '라이센스가 부여되지 않음'대화 상자에 '다시 시도'버튼을 추가하십시오. 때로 라이센스 장애를 초래하는 일시적인 네트워크 장애 일뿐입니다.
  3. Google 대화 상자에 Google의 지원 이메일을 남기거나 사용자가 문제를 소스로 전달할 수있는 다른 방법을 추가하는 것이 좋습니다.
  4. 유일하게 효과적인 옵션은 아마도 응답이 영구적 인 구매를위한 것이라면 캐시에 저장하기 전에 라이선스 서비스에서받은 GT 타임 스탬프의 값을 수동으로 늘리십시오. GT 시간 소인과 VT 시간 소인의 차이점을 확인하십시오. 충분히 클 경우 (일주일) GT에 다른 달 또는 연도를 추가하십시오. 일단 사용자가 환불 기간을 지났을 때 라이센스를 반영구적으로 또는 영구히 영구히 사용할 수 있다는 아이디어가 있습니다.

희망이 도움이됩니다.

+0

Google 지원에 대한 이메일을 찾을 수 없었습니다. 나 좀 도와 줄 수있어? 나는 그것이 좋은 생각이라고 생각한다. –

+0

그들은 지원하지 않습니다. 하지만 http://www.google.com/support/androidmarket/developer/bin/answer.py?hl=ko&answer=113477 페이지의 맨 아래에있는 정책을 따르십시오. 따라서 이메일 대신 HTML 링크를 제공 할 수 있습니다. – dragonroot