Я использую 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"));
Когда я выполняю этот код, я получаю всплывающее меню с установленными галереями для выбора обоев.
И когда я выбираю один из них, я получаю тост -
«Невозможно загрузить изображение.»
что, вероятно, связано с тем, что я не передаю изображение Намерению.
Пожалуйста, помогите, я искал это часами.
Я нашел похожие вопросы здесь , здесь & здесь , но ни один из них не помог мне.