我需要将下载的图像文件写入现有的内容提供程序,以便我可以使用ACTION_CROP_AND_SET_WALLPAPER。为此,我需要将书面文件保留在内容提供商中。因此,我需要使用已知的常用图像内容提供程序,或者以一种将api级别保持在19或更低的方式设置我自己的提供程序。我怎样才能做到这一点?
这是我到目前为止的代码,它成功地将下载的文件写入应用程序存储,但我真的需要它进入内容提供商。我还希望内容提供商不需要询问用户是否允许写入它。我假设内容提供商将从Mediastore.Image开始,但我缺少细节。
BufferedInputStream in = new BufferedInputStream(response.getEntity().getContent());
appdir = new String((this.getApplicationContext().getFilesDir()).getAbsolutePath());
File file = new File(appdir + "/temp.jpg");
OutputStream out = null;
try {
out = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len;
while((len=in.read(buf))>0){
out.write(buf,0,len);
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if ( out != null ) {
out.close();
}
in.close();
}
catch ( IOException e ) {
e.printStackTrace();
}
}