Как я могу правильно завершить работу своих живых обоев после неудачной проверки лицензии? - PullRequest
0 голосов
/ 25 марта 2012

Поэтому я пытаюсь правильно внедрить лицензирование в мои живые обои. Там весь код, все компилируется, но метод stopSelf () моего WallpaperService просто не работает. Вот что у меня есть:

public class MyWallpaperService extends WallpaperService implements LicenseCheckerCallback{
...
@Override
public void onCreate() {
    super.onCreate();

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


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

    mChecker.checkAccess(this);
}

@Override
public void onDestroy() {
    super.onDestroy();
    mChecker.onDestroy();
    //Log.d(DEB_TAG, "onDestroy()");
}

@Override
public Engine onCreateEngine() {
    SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_NAME,0);
    return new MyEngine(prefs);
}

public void allow(int reason) {
}

public void dontAllow(int reason) {
    Toast.makeText(getApplicationContext(), "This application is not licensed on this device", Toast.LENGTH_SHORT).show();
    stopSelf();

}

public void applicationError(int errorCode) {

}
...
}

Это доводит меня до стены. Метод dontAllow () определенно вызывается, потому что я вижу всплывающее окно Toast, но WallpaperService весело работает, и я не могу найти вескую причину, почему это может быть. У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 25 марта 2012

Лично я просто искажаю свою функцию рисования логическим значением.Это оставит живые обои вверх, но не обновит их.По сути, это изображение.

...