【发布时间】:2018-02-05 03:09:54
【问题描述】:
我正在尝试制作一个应用程序,让用户将图像设置为墙纸。我正在通过 picasso 下载图像并将其保存到内部存储中。文件正在保存,我正在创建 file:// URI 以共享给其他应用程序(用于将其设置为墙纸的图库应用程序)。但问题是当我选择我想通过崩溃设置壁纸的应用程序时。 (在内置画廊和 whatsapp 中)。我尝试记录图像文件路径并创建了 file:// URI 路径,它们看起来不同,我认为这是正常的。但是为什么共享图片的其他应用程序崩溃了,尽管图像被保存到了 sd 卡中。我的应用程序中的图像不能被其他应用程序访问吗?如果不是,该怎么做才能使它们易于访问?
下面是我尝试将其设置为墙纸的代码,下面是文件图像路径和 URI 路径的日志。
public void setWallpaper(){
if(imageFile !=null){
Log.d("FILE",imageFile);
File file=new File(imageFile);
Uri apkURI = FileProvider.getUriForFile(
WallpaperDetailActivity.this,
BuildConfig.APPLICATION_ID + ".provider", file);
Log.d("ANURAN",apkURI.getPath()+"");
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setDataAndType(apkURI, "image/jpeg");
intent.putExtra("mimeType", "image/jpeg");
startActivityForResult(Intent.createChooser(intent,"Set As: "),100);
}
}
//日志
02-05 00:00:07.306 2303-3242/com.mranuran.animewallpapershd I/image: image saved to >>>/storage/emulated/0/AnimeWallpapersHD/758665.jpg
02-05 00:00:13.476 2303-2303/com.mranuran.animewallpapershd D/FILE: /storage/emulated/0/AnimeWallpapersHD/758665.jpg
02-05 00:00:13.478 2303-2303/com.mranuran.animewallpapershd D/ANURAN: /external_files/AnimeWallpapersHD/758665.jpg
【问题讨论】:
标签: android