private static String getFromMediaUri(Context context, ContentResolver resolver, Uri uri) { if (uri == null) return null; FileInputStream input = null; FileOutputStream output = null; try { ParcelFileDescriptor pfd = resolver.openFileDescriptor(uri, "r"); if (pfd == null) { return null; } FileDescriptor fd = pfd.getFileDescriptor(); input = new FileInputStream(fd); String tempFilename = getTempFilename(context); output = new FileOutputStream(tempFilename); int read; byte[] bytes = new byte[4096]; while ((read = input.read(bytes)) != -1) { output.write(bytes, 0, read); } return new File(tempFilename).getAbsolutePath(); } catch (Exception ignored) { ignored.getStackTrace(); } finally { closeSilently(input); closeSilently(output); } return null; } private static String getTempFilename(Context context) throws IOException {File outputDir = context.getCacheDir(); File outputFile = File.createTempFile("image", "tmp", outputDir); return outputFile.getAbsolutePath(); } public static void closeSilently(@Nullable Closeable c) { if (c == null) return; try { c.close(); } catch (Throwable t) { // Do nothing } }
android7.0 uri转图片路径遇到的问题:java.lang.IllegalArgumentException: column '_data' does not exist
最新推荐文章于 2023-12-29 08:30:00 发布