2013-01-02 47 views
3

我uploded我的應用程序有正確的密鑰谷歌的許可,但是當我從商店下載的應用程序它給此應用沒有授權。請從Android Market購買它的Android

這個應用程序是不許可的。請從Android Market購買。

這裏是代碼:

public class MainActivity extends Activity { 
    private static final String BASE64_PUBLIC_KEY = my_app_key; 

    // Generate your own 20 random bytes, and put them here. 
    private static final byte[] SALT = new byte[] { 
     -46, 35, 30, -128, -103, -57, 74, -64, 51, 88, -95, -45, 67, -117, -36, -113, -11, 82, -44, 
     29 
    }; 

    private TextView mStatusText; 

    private LicenseCheckerCallback mLicenseCheckerCallback; 
    private LicenseChecker mChecker; 
    // A handler on the UI thread. 
    private Handler mHandler; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
     setContentView(R.layout.license); 

     mStatusText = (TextView) findViewById(R.id.status_text); 

     mHandler = new Handler(); 

     // Try to use more data here. ANDROID_ID is a single point of attack. 
     String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID); 

     // Library calls this when it's done. 
     mLicenseCheckerCallback = new MyLicenseCheckerCallback(); 
     // Construct the LicenseChecker with a policy. 
     mChecker = new LicenseChecker(
      this, new ServerManagedPolicy(this, 
       new AESObfuscator(SALT, getPackageName(), deviceId)), 
      BASE64_PUBLIC_KEY); 
     doCheck(); 
    } 

    protected Dialog onCreateDialog(int id) { 
     final boolean bRetry = id == 1; 
     return new AlertDialog.Builder(this) 
      .setTitle(R.string.unlicensed_dialog_title) 
      .setMessage(bRetry ? R.string.unlicensed_dialog_retry_body : R.string.unlicensed_dialog_body) 
      .setPositiveButton(bRetry ? R.string.retry_button : R.string.buy_button, new DialogInterface.OnClickListener() { 
       boolean mRetry = bRetry; 
       public void onClick(DialogInterface dialog, int which) { 
        if (mRetry) { 
         doCheck(); 
        } else { 
         Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
           "http://market.android.com/details?id=" + getPackageName())); 
          startActivity(marketIntent);       
        } 
       } 
      }) 
      .setNegativeButton(R.string.quit_button, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        finish(); 
       } 
      }).create(); 
    } 

    private void doCheck() { 

     setProgressBarIndeterminateVisibility(true); 
     mStatusText.setText(R.string.checking_license); 
     mChecker.checkAccess(mLicenseCheckerCallback); 
    } 

    private void displayResult(final String result) { 
     mHandler.post(new Runnable() { 
      public void run() { 
       mStatusText.setText(result); 
       setProgressBarIndeterminateVisibility(false); 

      } 
     }); 
    } 

    private void displayDialog(final boolean showRetry) { 
     mHandler.post(new Runnable() { 
      public void run() { 
       setProgressBarIndeterminateVisibility(false); 
       showDialog(showRetry ? 1 : 0); 

      } 
     }); 
    }  

    private class MyLicenseCheckerCallback implements LicenseCheckerCallback { 
     public void allow(int policyReason) { 
      if (isFinishing()) { 
       // Don't update UI if Activity is finishing. 
       return; 
      } 
      // Should allow user access. 
      finish(); 
      startActivity(new Intent(MainActivity.this,first.class)); 
     } 

     public void dontAllow(int policyReason) { 
      if (isFinishing()) { 
       // Don't update UI if Activity is finishing. 
       return; 
      } 
      displayResult(getString(R.string.dont_allow)); 
      // 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. 
      // If the reason for the lack of license is that the service is 
      // unavailable or there is another problem, we display a 
      // retry button on the dialog and a different message. 
      displayDialog(policyReason == Policy.RETRY); 
     } 

     public void applicationError(int 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. 
      String result = String.format(getString(R.string.application_error), errorCode); 
      displayResult(result); 
     } 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     mChecker.onDestroy(); 
    } 

} 
+0

你好,我面臨apk擴展文件下載相同的問題,如果你解決了這個問題請發表解決方案,謝謝。 – Hasmukh

回答

1

是否使用,你用它上傳相同的id?

相關問題