2017-09-08 5 views
0

J'ai des images enregistrées sur le téléphone de stockage interne dans un filepath qui ressemble à ceci:Comment définir le fond d'écran de téléphone dans l'intention

/storage/emulated/0/myApp/FILENAME.jpg 

Je veux ouvrir une intention afin que l'utilisateur peut régler la fond d'écran de téléphone avec son application de choix. Chaque code que j'ai essayé ne fonctionne pas du tout ou ne fonctionne qu'avec certaines applications. Merci.

Répondre

1

Vous pouvez définir une image dans sdcard ou par téléphone en ouvrant cette intention:

Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER); 
startActivity(Intent.createChooser(intent, "Select Wallpaper")); 

de bien vouloir ajouter la permission aussi:

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

pour plus d'options vérifier this answer

PS: Vous devez ajouter l'autorisation pour SET_WALLPAPER pour android 6+

Mise à jour:

Vous pouvez également fond d'écran ouvert comme dialogue en utilisant:

Intent intent = new Intent(Intent.ACTION_ATTACH_DATA); 
intent.setDataAndType(imageUri, "image/*"); 
intent.putExtra("jpg", "image/*"); 
startActivityForResult(Intent.createChooser(intent, 
getString(R.string.set_as)), REQUEST_ID_SET_AS_WALLPAPER); 
+0

Salut, je ne veux pas utiliser WallpaperManager, le fond d'écran doit être réglé par exemple par Google Photos ou de lancement du téléphone – David

+0

Vous ne pouvez plus définir de fond d'écran en utilisant [GooglePhotos] (https://www.reddit.com/r/Nexus6P/comments/624vkl/can_no_longer_set_wallpaper_using_google_photos/) –

+0

oui je peux, par exemple maintenant j'utilise QuickPic pour définir un fond d'écran à travers Google Photos Je ne sais pas comment faire la même chose dans mon application. – David