如何使应用程序创建的文件可从计算机读取?

时间:2014-12-06 06:04:22

标签: android

我无法创建公开的图像。我试图在公共图片目录中创建它并在那里创建它,我可以从手机中的文件浏览器查看它。但是图片既没有被默认的专辑应用程序选中,也没有通过将手机连接到计算机来看到它。所以我想这张照片仍然是私密的。我需要的是必须将图片复制到计算机上。这是代码段。

            String photoPath = "sdcard/test.jpg";
            Bitmap originalBitmap = BitmapFactory.decodeFile(photoPath);
            squareBitmap = Bitmap.createBitmap(originalBitmap,0,0,1000,1000);
            dvBitmap = squareBitmap.createScaledBitmap(squareBitmap,200,200,false);

            //saving bitmap to JPEG in sd card
            ByteArrayOutputStream bytes = new ByteArrayOutputStream();
            dvBitmap.compress(Bitmap.CompressFormat.JPEG,100,bytes);
            File path = Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_PICTURES);

            File f = new File(path,"output.jpg");
            f.setReadable(true);
            try {
                Log.v(LOG_TAG,"CREATING FILE");
                f.createNewFile();

                FileOutputStream fo = new FileOutputStream(f);
                fo.write(bytes.toByteArray());
                fo.close();
                Log.v(LOG_TAG,"FILE CREATED");
            } catch (IOException e) {
                Log.v(LOG_TAG,"CANNOT CREATE FILE");
                e.printStackTrace();
            }

提前致谢

编辑:我测试的手机是索尼Xperia S.现在我在另一部手机上测试了,这是三星和相同的代码运作良好。两者都在内部存储上进行测试。

1 个答案:

答案 0 :(得分:0)

所以问题是MediaScannerConnection已将它们编入索引。只需在创建文件后添加以下代码即可。

MediaScannerConnection.scanFile(getApplicationContext(),
                        new String[]{f.toString()}, null,null);