Оставлю тут код демо-проекта и обёртку для WallpaperManager, кому-нибудь в будущем пригодятся.
// Подключить System.IOUtils, Androidapi.JNI.GraphicsContentViewText,
// Androidapi.JNI.JavaTypes,
// Androidapi.helpers, android.app.WallpaperManager; (android.app.WallpaperManager распаковать и закинуть к исходникам проекта)
//перейти в Project->Options->Application->Uses permissions и поставить галочку напротив пункта "Set wallpaper"
procedure TForm1.Button1Click(Sender: TObject);
var
path: string;
str: JString;
Wallpaper: JWallpaperManager;
Image: JBitmap;
Context: JContext;
begin
if Edit1.Text <> '' then
begin
path := Tpath.Combine(Tpath.GetDocumentsPath, Edit1.Text); //Вместо TPath.GetDocumentsPath можно написать путь к любой директории на //устройстве, вместо Edit1.text - название картинки(с расширением, важно соблюдать регистр!!!)
str := StringToJString(path);
Context := SharedActivityContext;
try
if FileExists(path) then
begin
ShowMessage('Файл найден');
Image := TJBitmapFactory.JavaClass.decodeFile(str)
end
else
ShowMessage('Файл не найден');
except
ShowMessage('Не удалось декодировать');
end;
try
Wallpaper := TJWallpaperManager.JavaClass.getInstance(Context);
Wallpaper.setBitmap(Image);
except
ShowMessage('Не удалось установить обои');
end;
end;
end;
android.app.WallpaperManager.pas.7z