次のコードを使用して、ネイティブカメラを使用して写真を撮ります。
private File mImageFile;
private String mTempImagePath;
public static Uri imageUri;
public void imageFromCamera() {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
Log.d("fototemp", "No SDCARD");
} else {
mImageFile = new File(Environment.getExternalStorageDirectory()+File.separator+"testFolder", "Pic"+System.currentTimeMillis()+".jpg");
imageUri = Uri.fromFile(mImageFile);
DataClass dc = (DataClass) getApplicationContext();
File tempFile = new File(Environment.getExternalStorageDirectory()+File.separator+"testFolder");
Uri tempUri = Uri.fromFile(tempFile);
dc.setString(DataClass.IMAGE_PATH, tempUri.toString());
Log.d("fototemp", "ImagePath: " + tempUri.toString());
mTempImagePath = mImageFile.getAbsolutePath();
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
startActivityForResult(intent, 0);
}
}
imageFromCamera()メソッドで出力するImagePathは次のとおりです。4file:/// file%3A / mnt / sdcard / testFolder
これで、managedQueryを使用してこれらの写真にアクセスしようとすると、別のディレクトリが表示されます。MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI.toString()はcontent:// media / external / images/thumbnailsを提供します
これら2つのパスの違いは何ですか?また、managedQueryをtestFolderマップに移動させて、画像を探すにはどうすればよいですか?
編集:私は接続しようとしています:
Uri phoneUriII = Uri.parse(Environment.getExternalStorageDirectory()+File.separator+"testFolder");
imagecursor = managedQuery(phoneUriII, img, null,null, MediaStore.Images.Thumbnails.IMAGE_ID + "");
しかし、このコードはクラッシュします