브로드 캐스트 리시버에서 배경 화면 변경 이벤트를받을 수 있습니까? 사용자가 벽 종이를 변경했는지 감지해야합니다. 어떻게 할 수 있습니까?배경 화면 변경 이벤트
내가하고있는 것 : 나는 자동으로 배경 화면을 변경하는 앱을 가지고있다. 사용자가 다른 응용 프로그램을 사용하여 수동으로 변경하는 경우이를 알아보고 해당 응용 프로그램의 새 배경 화면을 응용 프로그램의 목록에 추가할지 묻습니다.
브로드 캐스트 리시버에서 배경 화면 변경 이벤트를받을 수 있습니까? 사용자가 벽 종이를 변경했는지 감지해야합니다. 어떻게 할 수 있습니까?배경 화면 변경 이벤트
내가하고있는 것 : 나는 자동으로 배경 화면을 변경하는 앱을 가지고있다. 사용자가 다른 응용 프로그램을 사용하여 수동으로 변경하는 경우이를 알아보고 해당 응용 프로그램의 새 배경 화면을 응용 프로그램의 목록에 추가할지 묻습니다.
배경 화면 이미지를 변경하는 경우에만 브로드 캐스트가 : http://developer.android.com/reference/android/content/Intent.html#ACTION_WALLPAPER_CHANGED
당신이 원하는 것을 할 일이 배경 화면 이미지 외에 뭔가 변경된 경우, 당신은 결정이를 사용하는 것이 더 논리가 필요합니다 : http://developer.android.com/reference/android/app/WallpaperManager.html#getWallpaperInfo()
변경하려는 배경 화면을 만드는 경우 실제로는 라이브 배경 화면을 작성해야합니다. 이렇게하면 시스템에 훨씬 더 편안하게 들어갈 수 있습니다. 원할 때 언제든지 표시 할 내용을 변경할 수 있으며 라이브 배경 화면이 중단되므로 사용자가 다른 배경 화면을 선택하면 명확합니다.
또한 ACTION_WALLPAPER_CHANGED를 사용하면 다른 응용 프로그램과의 상호 작용이 좋지 않을 수 있으므로 매우주의해야합니다. 다음 API에 표시 될 설명서가 있습니다.
/**
* Broadcast Action: The current system wallpaper has changed. See
* {@link android.app.WallpaperManager} for retrieving the new wallpaper.
* This should <em>only</em> be used to determine when the wallpaper
* has changed to show the new wallpaper to the user. You should certainly
* never, in response to this, change the wallpaper or other attributes of
* it such as the suggested size. That would be crazy, right? You'd cause
* all kinds of loops, especially if other apps are doing similar things,
* right? Of course. So please don't do this.
*
* @deprecated Modern applications should use
* {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WALLPAPER
* WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER} to have the wallpaper
* shown behind their UI, rather than watching for this broadcast and
* rendering the wallpaper on their own.
*/
True story.
나는 아무것도 얻지 못한다고 생각합니다. .
WallpaperManager에는 현재 벽지를 드로어 블로 반환하는 일부 게터가 있습니다. 현재 사본을 저장된 사본과 비교하여 변경 사항이 있는지 여부를 판별 할 수 있습니다. 그러나 이미 설정 한 후 배경 화면을 변경하여 사용자를 속이기 위해이 기능을 사용하는 경우 맨발로 어둠 속에서 레고를 들기를 바랍니다.
비교할 때 좋은 해결책이라고 생각하지 않습니다. 얼마나 자주 비교해야합니까? 매 순간? 매시간? (배터리는 금과 같다). 내가하고있는 일은 다음과 같습니다. 저는 자동으로 배경 화면을 변경하는 앱이 있습니다. 사용자가 다른 응용 프로그램을 사용하여 수동으로 변경하는 경우 해당 응용 프로그램의 목록에 새 배경 무늬를 추가 할 것인지 묻는 메시지를 표시하고 사용자에게 묻습니다. – Ton
나는 그것이 유일한 해결책이라고 생각합니다. . 하지만 배터리가 금처럼되면 사람들은 자동 배경 화면 스위처를 사용하지 않을 것입니다 ... – FoamyGuy
왜이 작업을 수행해야합니까? 성취하려는 것에 대한 정보를 제공하면 사람들이 질문에 대답하는 데 도움이됩니다. – hackbod
확인. 내가 뭘하는지는 다음과 같습니다. 매일 자동으로 벽지를 변경하는 앱이 있습니다. 사용자가 다른 응용 프로그램을 사용하여 수동으로 변경하는 경우이를 알아 채고 해당 응용 프로그램의 목록에 새 배경 무늬를 추가 할 것인지 묻습니다. – Ton