在通过 android 源代码的漫长而曲折的道路后,我在默认画廊 (gallery3d) 应用程序中找到了实际代码。我适应了在我自己的应用程序中使用,为了方便在其他应用程序中导入时再次重写了它。如果您使用或欣赏这个,我要求您支持这个答案。
改编自:grepcode 上的gallery3d 源代码
用法:更改第一行以匹配照片的完整路径(以 /mnt/ 开头)。将字符串“set_as”添加到您的 strings.xml 作为操作选择器标题。
String absolutepath = MyApplication.appRootDir + relpath;//change for your application
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
MimeTypeMap map = MimeTypeMap.getSingleton();
String ext = absolutepath.substring(absolutepath.lastIndexOf('.') + 1);
String mimeType = map.getMimeTypeFromExtension(ext);
Uri uri = Uri.fromFile(new File(absolutepath));
intent.setDataAndType(uri, mimeType);
intent.putExtra("mimeType", mimeType);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Activity activity = (Activity) this;
activity.startActivity(Intent.createChooser(
intent, activity.getString(R.string.set_as)));