2011-01-28 5 views
19

일부 코드 줄을 사용하여 라이브 배경 무늬를 설정할 수 있습니까? 예를 들어, 사용자에게 라이브 배경 화면을 "여기를 클릭하여 설정"할 수 있다고 말하고 싶습니다.프로그래밍 방식으로 라이브 배경 화면 설정

+0

나는 가능하다고 생각하지 않지만 배경 화면 선택기를 시작할 수는 있지만 배경 화면을 직접 설정할 수는 없습니다. – theomega

+0

그럼 내 다음 질문은 .. 코드를 사용하여 시작하는 방법은? – prashant

+0

그것은 벽지를 직접 설정할 수있는 것 같습니다 : http://stackoverflow.com/questions/2205092/android-how-to-set-the-wallpaper-image – mahboudz

답변

25

좋아요, 그렇기 때문에 나는 구식 대답에 대한 하향 투표를 중단합니다. 아래의 오류 454의 답변을 참조하십시오. Jelly Bean 및 장치의 바탕 화면 미리보기 화면으로 사용자를 직접 보냅니다. 여기

========================================

는 방법 사용자가 배경 화면을 선택할 수있는 배경 무늬 선택기를 시작합니다. 건배는 사용자에게 무슨 일이 일어나는지 설명하는 방법 일뿐입니다.

Toast toast = Toast.makeText(this, "Choose '<WALLPAPER NAME>' from the list to start the Live Wallpaper.",Toast.LENGTH_LONG); 
toast.show(); 

Intent intent = new Intent(); 
intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER); 
startActivity(intent); 
+0

사용자 개입없이 변경할 수 있습니까? 이걸 확인해 주시겠습니까? http://stackoverflow.com/questions/13683464/set-live-wallpaper-programmatically-on-rooted-device-android – Naskov

+0

아니, 할 수 없습니다. Error454의 답변은 응원하지 않는 한 가깝습니다. 그래도 네가 루트로 어떻게 할 수 있는지 모르겠다. 어쩌면 XDA에 대해 물어보십시오. – Josh

30

젤리 빈은 라이브 배경을 직접 설정할 수있는 방법을 제공하므로 두 가지 방법이 있습니다. 이 상용구 코드는 사용할 수있는 최상의 방법을 선택합니다.

Intent i = new Intent(); 

if(Build.VERSION.SDK_INT > 15){ 
    i.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER); 

    String p = HypercaneWallpaperService.class.getPackage().getName(); 
    String c = HypercaneWallpaperService.class.getCanonicalName();   
    i.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(p, c)); 
} 
else{ 
    i.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER); 
} 
getActivity().startActivityForResult(i, 0); 
+1

내가 그 벽지를 소유하지 않으면 어떻게 될까? 내 응용 프로그램을 사용하여 다른 배경 무늬를 설정하는 방법을 의미합니까? 이걸 확인해 주시겠습니까? http://stackoverflow.com/questions/13683464/set-live-wallpaper-programmatically-on-rooted-device-android – Naskov

+0

내 벽지 서비스가 주 패키지가 아닌 다른 패키지에 있습니다. 내가 제공해야하는 올바른 패키지는 다음과 같습니다. String String p = this.getContext(). getPackageName(); – Twinsen

관련 문제