Imposta Live Wallpaper Programmaticamente su Dispositivo Rooted Android

È in qualche modo ansible impostare Live Wallpaper in modo programmato utilizzando la mia applicazione?

Sto lavorando su un'applicazione che il suo scopo è quello di scegliere alcuni dei Live Wallpapers installati sul dispositivo e di impostarli come Live Wallpaper. Questa azione deve essere completata tramite la mia applicazione.

  • Come generare il report dei risultati del test utilizzando il robot?
  • Come get la barra di ricerca di Google Now nella mia app?
  • Come funziona il lavoro di valutazione di Jaspascript?
  • Come creare file di text e inserire dati in quel file su Android
  • Evidenziare il colore del text usando Html.fromHtml () in Android?
  • Perché questa NotificationListenerService non funziona
  • Mentre stavo cercando, ho trovato alcune risposte che questo può essere fatto con rooting del dispositivo Android?

    Qualcuno può aiutarmi a farlo esattamente?

  • Filtrare un recyclerview con un adattatore di firebaserecycler
  • Tema giorno / notte per app Android
  • Come rimuovere la messa a fuoco da RecyclerView all'interno di ScrollView?
  • TimePicker in PreferenceScreen
  • Ottenere lo stato della printingnte utilizzando SNMP OID
  • RecyclerView - Ottieni la vista in una posizione particolare
  • 2 Solutions collect form web for “Imposta Live Wallpaper Programmaticamente su Dispositivo Rooted Android”

    Android OS prima di Jelly Bean non consente di impostare in modo programmato uno background in diretta. Per ora Jelly Bean support la modifica della Live Wallpaper in modo programmato senza interazione con l'utente

    Spiacenti di rompere con i pronostici ma è ansible impostare una carta da parati dal vivo in modo programmato SENZA l'interazione con l'utente. Richiede:

    1. L'applicazione è privilegiata dal sistema
    2. <uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" />
    3. Riflessione Java (codice di hacking super)
    4. Un riferimento di class alla WallpaperService desiderata (Live Wallpaper)

    NOTA: Per l'articolo # 3, ho usato la mia carta da parati dal vivo, la class MyWallpaperService

    Ciò può essere fatto solo se l'applicazione è privilegiata dal sistema e dispone di questa authorization nel manifesto:

     <uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" /> 

    Ora, usando la riflessione, puoi call i methods nascosti di WallpaperManager per impostare manualmente la carta da parati live:

     WallpaperManager manager = WallpaperManager.getInstance(context); Method method = WallpaperManager.class.getMethod("getIWallpaperManager", null); Object objIWallpaperManager = method.invoke(manager, null); Class[] param = new Class[1]; param[0] = ComponentName.class; method = objIWallpaperManager.getClass().getMethod("setWallpaperComponent", param); //get the intent of the desired wallpaper service. Note: I created my own //custom wallpaper service. You'll need a class reference and package //of the desired live wallpaper Intent intent = new Intent(WallpaperService.SERVICE_INTERFACE); intent.setClassName(context.getPackageName(), MyWallpaperService.class.getName()); //set the live wallpaper (throws security exception if you're not system-privileged app) method.invoke(objIWallpaperManager, intent.getComponent()); 

    Fare riferimento al codice sorgente:

    • LiveWallpaperActivity
    • LiveWallpaperPreview
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.