2012-03-25 3 views
0

그래서 라이브 배경 화면에 라이센스를 올바르게 구현하려고합니다. 모든 코드가 거기에 있지만 모든 것이 컴파일되지만 내 WallpaperService의 stopSelf() 메서드는 작동하지 않는 것 같습니다. 여기에 내가 무엇을 가지고있다 :라이센스 확인 확인에 실패하면 어떻게하면 내 라이브 배경 화면이 제대로 종료됩니까?

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) { 

} 
... 
} 

그것은 나를 벽으로 몰고있다. 토스트 (Toast) 팝업이 보이기 때문에 dontAllow() 메소드가 확실히 호출되고 있습니다.하지만 WallpaperService가 실행 중일 때 즐겁게 수행됩니다. 그 이유는 알 수 없습니다. 누구든지 아이디어가 있습니까?

답변

0

개인적으로 나는 그리기 기능에 불리언을 사용합니다. 이렇게하면 라이브 배경 화면이 남아 있지만 업데이트하지는 않습니다. 그것은 본질적으로 이미지가됩니다.

+1

감사합니다. 이것은 나를위한 티켓 일뿐입니다. 그렇게 단순하고 짜증스럽게 생각했습니다. 정말 고맙습니다 :) – SatNav