android - 为什么我在图库中看不到我拍摄的照片?

标签 android camera android-sdcard fileoutputstream

我正在没有 SD 卡的无根 4.0.4 Android 设备上试验相机。我正在拍摄一些连拍照片并将它们保存在内存中。

我的问题是我的照片存储在 /data/data/my.package.name/files 中,没有 root 权限我无法访问。我可以看到这些文件,但它们没有读取权限。

我发现了一些应该使它们在标准库中可见的广播 Intent ,但这似乎也不起作用。

有没有人知道我如何访问我的照片?或者调整我到目前为止尝试过的东西?

我如何保存照片:

public void onPictureTaken(byte[] data, Camera camera) {
        FileOutputStream outStream = null;
        try {           
            Log.i(TAG, ""+Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES));           
            Log.i(TAG,"fotofolder is "+getFilesDir());

            // write to local sandbox file system
             outStream = CameraDemo.this.openFileOutput(String.format("%d.jpg",
             System.currentTimeMillis()), 0);

            outStream.write(data);
            outStream.close();

       //this intent should make fotos visible in the gallery
            sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,                           
                     Uri.fromFile(Environment.getExternalStorageDirectory())));
                    // Uri.parse("file://" + Environment.getExternalStorageDirectory())));

            Log.i(TAG, "onPictureTaken - wrote bytes: " + data.length);
     ...
}

日志:

08-23 12:42:49.324: I/FrontCamera(15832): /mnt/sdcard/Pictures
08-23 12:42:49.327: I/FrontCamera(15832): fotofolder is /data/data/com.example.camera/files
08-23 12:42:49.370: I/FrontCamera(15832): onPictureTaken - wrote bytes: 430493

<--- 它将照片放入 data/data... 文件夹,而不是有用的 mnt/sdcard/Pictures

最佳答案

使用MediaStore.Images.Media

MediaStore.Images.Media.insertImage(getContentResolver(), imageBitmap, imageTitle, imageDescription);

您可以使用 internal storage用于保存。

关于android - 为什么我在图库中看不到我拍摄的照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401025/

相关文章:

安卓市场API

java - 如何在edittext上显示 double 值 - android

java - 根据 Google Map Android API v2 上的一组位置确定合适的缩放级别

javascript - 访问缓存图片phonegap

android - 如何在 Android 4.4.2(Kitkat) API 级别 19 的外部 SD 卡中创建文件夹

android - 无法在 Android 中创建外部文件目录。 WRITE_EXTERNAL_STORAGE 存在

android - 如何在 android N 上以编程方式安装应用程序

适用于所有 Android 设备的相机应用程序

java - 从Android手机的SD卡中删除文件

android - 摄像头 : setDisplayOrientation function is not working for Samsung Galaxy ACE with Android 2. 3.6