Как показать параметр галереи по Intent.ACTION_ATTACH_DATA на устройстве Xiaomi Redmi 5? - PullRequest
0 голосов
/ 12 мая 2018

Мое приложение показывает изображение, а затем устанавливает его в качестве обоев устройства.

У меня есть код, и я уже пробовал его на некоторых устройствах и успешно работает. (Lenovo Vibe C Lolipop, зефир Advan I7)

Но я обнаружил проблему на устройстве Xiaomi Redmmi 5 (Nougat)

Когда я выбирал картинку в качестве обоев при помощи намеренного выбора, опция «Галерея» отсутствовала

Примечание: Я думаю, что на Xiaomi опция «Галерея» является лучшим выбором для установки изображения в качестве обоев для устройства, чем другие

Я прикрепил скриншот с Lenovo Vibe C (есть опция «Галерея») и Xiaomi Redmi 5 (опция «Нет галереи»)

Screenshoot on Lenovo and Xiaomi

Ниже приведен фрагмент кода

//I have picture in "Wallpaper Folder", its name is "IMG_Wallpaper.jpg"
File folderPict = new File(Environment.getExternalStorageDirectory() + File.separator + "Wallpaper Folder");

String pictName = "IMG_Wallpaper.jpg";
String destFileName = folderPict.getAbsolutePath() + "/" + pictName;

filePict = new File(destFileName);


// In this step, I already have filePict "IMG_Wallpaper.jpg" in folder "folderPict"


//get uri from external file
Uri uriPict = Uri.fromFile(filePict);

//set wallpaper by intent chooser
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.setDataAndType(uriPict, "image/*");
intent.putExtra("mimeType", "image/*");
startActivity(Intent.createChooser(intent, "Set as"));

1 Ответ

0 голосов
/ 12 мая 2018
Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent , RESULT_GALLERY );

и для получения результата

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (null != data) {
        imageUri = data.getData();
        //Do whatever that you desire here. or leave this blank
    }
}
...