Как установить обои без WallpaperManager - PullRequest
0 голосов
/ 24 апреля 2018

Я использую Glide для кэширования изображений в ImageView. Теперь я хочу установить изображение в ImageView в качестве обоев телефона без использования WallpaperManager, потому что WallpaperManager не дает возможности обрезать / панорамировать изображение, как это делает установка обоев в приложении галереи по умолчанию.

Я хочу установить обои, используя:

Intent.ACTION_ATTACH_DATA

или

Intent.ACTION_SET_WALLPAPER

но я не знаю, как передать Bitmap / drawable из ImageView для этого намерения. Вот мой код:

Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
            intent.setDataAndType(ContactsContract.Contacts.CONTENT_URI, "image/*");
            intent.putExtra("mimeType", "image/jpeg");
            intent.putExtra("image", imageView.getDrawingCache());
            startActivity(Intent.createChooser(intent, "Select Wallpaper"));

Когда я выполняю этот код, я получаю всплывающее меню с установленными галереями для выбора обоев. И когда я выбираю один из них, я получаю тост -

«Невозможно загрузить изображение.»

что, вероятно, связано с тем, что я не передаю изображение Намерению. Пожалуйста, помогите, я искал это часами.

Я нашел похожие вопросы здесь , здесь & здесь , но ни один из них не помог мне.

1 Ответ

0 голосов
/ 04 октября 2018

Итак, поскольку я решил проблему, сейчас я пишу решение здесь (на случай, если оно кому-нибудь еще понадобится).

    myDir = new File(root + "/Wallpy/");     //this is the name of the containing folder
    final File imageFile = new File(myDir, "abcd.jpg");     //name of the image file
    Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
                    intent.setDataAndType(Uri.fromFile(imageFile), "image/*");
                    startActivity(Intent.createChooser(intent, "Select Wallpaper"));

где, imageFile - файл, который необходимо установить в качестве обоев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...