亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于Android4.4的圖片路徑獲取,如果回來的Uri的格式有兩種

發布時間:2020-07-27 19:37:29 來源:網絡 閱讀:402 作者:向往宇宙 欄目:移動開發

關于Android4.4的圖片路徑獲取,如果回來的Uri的格式有兩種
1、content://com.android.providers.media.documents/document/p_w_picpath:3951
2、content://media/external/p_w_picpaths/media/3951

解決辦法:
    1)、
        //>=4.4    時
        if(DocumentsContract.isDocumentUri(context, contentUri)){
            String wholeID = DocumentsContract.getDocumentId(contentUri);
            String id = wholeID.split(:)[1];
            String[] column = { MediaStore.Images.Media.DATA };
            String sel = MediaStore.Images.Media._ID + =?;
            Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, column,
                    sel, new String[] { id }, null);
            int columnIndex = cursor.getColumnIndex(column[0]);
            if (cursor.moveToFirst()) {
                filePath = cursor.getString(columnIndex);
            }
            cursor.close();
        
        //<4.4時
        }else{
            String[] projection = { MediaStore.Images.Media.DATA };
            Cursor cursor = context.getContentResolver().query(contentUri, projection, null, null, null);
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            cursor.moveToFirst();
            filePath = cursor.getString(column_index);
        }
    2)、
       public static String getPath(final Context context, final Uri uri) {  
            
            final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;  
          
            // DocumentProvider  
            if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {  
                // ExternalStorageProvider  
                if (isExternalStorageDocument(uri)) {  
                    final String docId = DocumentsContract.getDocumentId(uri);  
                    final String[] split = docId.split(":");  
                    final String type = split[0];  
          
                    if ("primary".equalsIgnoreCase(type)) {  
                        return Environment.getExternalStorageDirectory() + "/" + split[1];  
                    }  
          
                    // TODO handle non-primary volumes  
                }  
                // DownloadsProvider  
                else if (isDownloadsDocument(uri)) {  
          
                    final String id = DocumentsContract.getDocumentId(uri);  
                    final Uri contentUri = ContentUris.withAppendedId(  
                            Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));  
          
                    return getDataColumn(context, contentUri, null, null);  
                }  
                // MediaProvider  
                else if (isMediaDocument(uri)) {  
                    final String docId = DocumentsContract.getDocumentId(uri);  
                    final String[] split = docId.split(":");  
                    final String type = split[0];  
          
                    Uri contentUri = null;  
                    if ("p_w_picpath".equals(type)) {  
                        contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;  
                    } else if ("video".equals(type)) {  
                        contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;  
                    } else if ("audio".equals(type)) {  
                        contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;  
                    }  
          
                    final String selection = "_id=?";  
                    final String[] selectionArgs = new String[] {  
                            split[1]  
                    };  
          
                    return getDataColumn(context, contentUri, selection, selectionArgs);  
                }  
            }  
            // MediaStore (and general)  
            else if ("content".equalsIgnoreCase(uri.getScheme())) {  
          
                // Return the remote address  
                if (isGooglePhotosUri(uri))  
                    return uri.getLastPathSegment();  
          
                return getDataColumn(context, uri, null, null);  
            }  
            // File  
            else if ("file".equalsIgnoreCase(uri.getScheme())) {  
                return uri.getPath();  
            }  
          
            return null;  
        }  
          
        /**
         * Get the value of the data column for this Uri. This is useful for
         * MediaStore Uris, and other file-based ContentProviders.
         *
         * @param context The context.
         * @param uri The Uri to query.
         * @param selection (Optional) Filter used in the query.
         * @param selectionArgs (Optional) Selection arguments used in the query.
         * @return The value of the _data column, which is typically a file path.
         */  
        public static String getDataColumn(Context context, Uri uri, String selection,  
                String[] selectionArgs) {  
          
            Cursor cursor = null;  
            final String column = "_data";  
            final String[] projection = {  
                    column  
            };  
          
            try {  
                cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,  
                        null);  
                if (cursor != null && cursor.moveToFirst()) {  
                    final int index = cursor.getColumnIndexOrThrow(column);  
                    return cursor.getString(index);  
                }  
            } finally {  
                if (cursor != null)  
                    cursor.close();  
            }  
            return null;  
        }  
          
        /**
         * @param uri The Uri to check.
         * @return Whether the Uri authority is ExternalStorageProvider.
         */  
        public static boolean isExternalStorageDocument(Uri uri) {  
            return "com.android.externalstorage.documents".equals(uri.getAuthority());  
        }  
          
        /**
         * @param uri The Uri to check.
         * @return Whether the Uri authority is DownloadsProvider.
         */  
        public static boolean isDownloadsDocument(Uri uri) {  
            return "com.android.providers.downloads.documents".equals(uri.getAuthority());  
        }  
          
        /**
         * @param uri The Uri to check.
         * @return Whether the Uri authority is MediaProvider.
         */  
        public static boolean isMediaDocument(Uri uri) {  
            return "com.android.providers.media.documents".equals(uri.getAuthority());  
        }  
          
        /**
         * @param uri The Uri to check.
         * @return Whether the Uri authority is Google Photos.
         */  
        public static boolean isGooglePhotosUri(Uri uri) {  
            return "com.google.android.apps.photos.content".equals(uri.getAuthority());  
        }  
    }

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临潭县| 南岸区| 云霄县| 方山县| 龙游县| 城步| 东明县| 沭阳县| 栾城县| 社旗县| 玛沁县| 东至县| 金塔县| 祁连县| 绍兴县| 靖西县| 马山县| 沙坪坝区| 共和县| 昌江| 定日县| 铜梁县| 仁怀市| 筠连县| 方城县| 肇东市| 黄浦区| 论坛| 葵青区| 理塘县| 蒙山县| 嘉善县| 邢台市| 甘谷县| 保康县| 松江区| 革吉县| 安阳县| 磐安县| 陆川县| 精河县|