gpt4 book ai didi

android - 在 Android 8 (Oreo) 中,Intent Chooser 无法设置 WallPaper

转载 作者:行者123 更新时间:2023-11-29 23:44:40 25 4
gpt4 key购买 nike

我正在使用以下代码 fragment 来设置墙纸。在低于 Android 8 (Oreo) 的所有版本中,它显示一个选择器来选择锁定屏幕或主屏幕或两者等。但在 Android 8 中,它直接在主屏幕上设置壁纸而无需任何确认。 Oreo 是否有任何更新或代码有问题?

        Uri sendUri2 = Uri.fromFile(externalFile);

Intent intent1 = new Intent(Intent.ACTION_ATTACH_DATA);
intent1.setDataAndType(sendUri2,type);
intent1.putExtra("mimeType",type);
intent1.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

startActivityForResult(Intent.createChooser(intent1, "Set As"), 200);

最佳答案

try {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_ATTACH_DATA);
File file = new File(path_of_file);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intent.setDataAndType(FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", file), getMimeType(path_of_file);
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(context, "Exception generated", Toast.LENGTH_SHORT).show();
}
}


private static String getMimeType(String url) {
String type = null;
String extension = MimeTypeMap.getFileExtensionFromUrl(url);
if (extension != null) {
type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
}
return type;
}

关于android - 在 Android 8 (Oreo) 中,Intent Chooser 无法设置 WallPaper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51546617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com