如何将图像文件写入现有内容提供商

时间:2018-06-04 03:52:55

标签: android-contentprovider outputstream

我需要将下载的图像文件写入现有的内容提供程序,以便我可以使用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();
                        }
                    }

0 个答案:

没有答案