Это мой метод для этого: < /p>
public void set_wallpaper(View view) throws IOException {
File imgFile = new File("/storage/emulated/0/Download/Asd.png");
if(imgFile.exists()){
Toast.makeText(this, "file is here", Toast.LENGTH_SHORT).show();
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
try {
wallpaperManager.setBitmap(myBitmap, null, true, WallpaperManager.FLAG_SYSTEM);
Toast.makeText(test.this , "done", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}else{
Toast.makeText(test.this, "Home screen walpaper not supported",
Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(this, "file not fond", Toast.LENGTH_SHORT).show();
}
}
< /code>
Мое манифестное разрешение < /p>
< /code>
и этот провайдер < /p>
< /code>
И это Provider_paths @xml file < /p>
< /code>
После запуска и нажатия кнопки «Файл обои» появляется здесь », но настенная бумага не изменяется, и приложение закрыто .. Я не знаю, что это причина < /p>
Подробнее здесь: https://stackoverflow.com/questions/796 ... d-set-it-a