- Forum-Beiträge: 236
07.03.2013, 15:16:33 via Website
07.03.2013 15:16:33 via Website
Die LicenseCheck Activity habe ich auch ohne Probleme nach dieser Anleitung hinbekommen - es werden von Eclipse auch keine Fehler erkannt:
2import android.app.Activity;
3import android.app.AlertDialog;
4import android.app.Dialog;
5import android.content.DialogInterface;
6import android.content.Intent;
7import android.net.Uri;
8import android.provider.Settings.Secure;
9import android.widget.Toast;
10import com.google.android.vending.licensing.AESObfuscator;
11import com.google.android.vending.licensing.LicenseChecker;
12import com.google.android.vending.licensing.LicenseCheckerCallback;
13import com.google.android.vending.licensing.ServerManagedPolicy;
14public class LicenseCheck extends Activity {
15 private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
16 public void allow(int reason) {
17 if (isFinishing()) {
18 return;
19 }
20 startMainActivity();
21 }
22 public void applicationError(int errorCode) {
23 if (isFinishing()) {
24 return;
25 }
26 toast("Error: " + errorCode);
27 startMainActivity();
28 }
29 public void dontAllow(int reason) {
30 if (isFinishing()) {
31 return;
32 }
33 showDialog(0);
34 }
35 }
36 private static final String BASE64_PUBLIC_KEY = "...Mein Code...";
37 private static final byte[] SALT = new byte[] {-90, 65, 70, -128, -103, -57, 74, -64, 51, 99, -95, -5, 100, 97, -35, -113, -14, 32, -64, 89};
38 private LicenseChecker mChecker;
39 private LicenseCheckerCallback mLicenseCheckerCallback;
40 private void doCheck() {
41 mChecker.checkAccess(mLicenseCheckerCallback);
42 }
43 @Override
44 public void onCreate(Bundle savedInstanceState) {
45 super.onCreate(savedInstanceState);
46 String deviceId = Secure.getString(getContentResolver(),
47 Secure.ANDROID_ID);
48 mLicenseCheckerCallback = new MyLicenseCheckerCallback();
49 mChecker = new LicenseChecker(this, new ServerManagedPolicy(this,
50 new AESObfuscator(SALT, getPackageName(), deviceId)),
51 BASE64_PUBLIC_KEY);
52 doCheck();
53 }
54 @Override
55 protected Dialog onCreateDialog(int id) {
56 return new AlertDialog.Builder(this)
57 .setTitle("Application Not Licensed")
58 .setCancelable(false)
59 .setMessage(
60 "This application is not licensed. Make sure you are connected to Internet. Please purchase it from Android Market")
61 .setPositiveButton("Buy App",
62 new DialogInterface.OnClickListener() {
63 public void onClick(DialogInterface dialog,
64 int which) {
65 Intent marketIntent = new Intent(
66 Intent.ACTION_VIEW,
67 Uri.parse("http://market.android.com/details?id="
68 + getPackageName()));
69 startActivity(marketIntent);
70 finish();
71 }
72 })
73 .setNegativeButton("Exit",
74 new DialogInterface.OnClickListener() {
75 public void onClick(DialogInterface dialog,
76 int which) {
77 finish();
78 }
79 }).create();
80 }
81 @Override
82 protected void onDestroy() {
83 super.onDestroy();
84 mChecker.onDestroy();
85 }
86 private void startMainActivity() {
87 startActivity(new Intent(this, MainActivity.class));
88 finish();
89 }
90 public void toast(String string) {
91 Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
92 }
93}
2 @Override
3 protected void onCreate(Bundle savedInstanceState) {
4 super.onCreate(savedInstanceState);
5 setContentView(R.layout.main);
6
7 doCheck();
8 }
und
Diese fordern mich auf, den Code in der LicenseCheck Activity (Stellen:
2 super.onCreate(savedInstanceState);
2 mChecker.checkAccess(mLicenseCheckerCallback);
3 }
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.