Установить в качестве обоев, экран блокировки по действию прикрепить данные - PullRequest
0 голосов
/ 13 июня 2019

приветствую всех

Я пытаюсь написать программу для установки обоев, экрана блокировки, изображения контакта и т. Д. Из imageView по действию, присоединения данных или любого другого способа сделать то же самое.

Пожалуйста, смотрите фотографии

изображение 1

изображение2


некоторый код:

   Intent setAs = new Intent(Intent.ACTION_ATTACH_DATA);
   setAs.setDataAndType(uri,"image/jpg");
   setAs.putExtra("mimeType", "image/jpg");
   startActivity(Intent.createChooser(setAs, "Set Image As"));

Когда приложение заканчивается, покажите мне сообщение: ни одно приложение не может выполнить это действие

Я добавляю разрешение в файле манифеста:

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

Большое спасибо за потраченное время

1 Ответ

0 голосов
/ 14 июня 2019

Я нашел решение, причина проблемы (URI) должна быть такой:

    Intent setAs = new Intent(Intent.ACTION_ATTACH_DATA);
     // i : integer variable (index of array contains my images ) 
    setAs.setDataAndType(Uri.parse(new File("/storage/emulated/0/pictures/wall/wall.jpg").toString()), "image/*");
    setAs.putExtra("mimeType", "image/*");
    setAs.addCategory(Intent.CATEGORY_DEFAULT);
    setAs.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    startActivity(Intent.createChooser(setAs, "Set Image As"));

Приведенный выше код не устанавливает изображение для контактов. Я продолжаю пытаться иесли я найду решение, я поставлю его здесь

...