16f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling/* 26f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * Copyright (C) 2013 The Android Open Source Project 36f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * 46f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * Licensed under the Apache License, Version 2.0 (the "License"); 56f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * you may not use this file except in compliance with the License. 66f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * You may obtain a copy of the License at 76f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * 86f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * http://www.apache.org/licenses/LICENSE-2.0 96f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * 106f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * Unless required by applicable law or agreed to in writing, software 116f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * distributed under the License is distributed on an "AS IS" BASIS, 126f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * See the License for the specific language governing permissions and 146f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * limitations under the License. 156f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling */ 166f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling 176f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingpackage com.android.camera.data; 186f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling 196f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingimport android.content.ContentResolver; 206f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingimport android.database.Cursor; 216f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingimport android.net.Uri; 226f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingimport android.provider.MediaStore; 236f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling 246f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingpublic class DataUtils { 256f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling 266f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling /** 276f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * Get the file path from a Media storage URI. 286f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling */ 296f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling public static String getPathFromURI(ContentResolver contentResolver, Uri contentUri) { 306f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling String[] proj = { 316f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling MediaStore.Images.Media.DATA 326f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling }; 336f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling Cursor cursor = contentResolver.query(contentUri, proj, null, null, null); 346f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling if (cursor == null) { 356f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling return null; 366f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling } 376f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling try { 386f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 396f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling if (!cursor.moveToFirst()) { 406f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling return null; 416f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling } else { 426f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling return cursor.getString(columnIndex); 436f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling } 446f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling } finally { 456f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling cursor.close(); 466f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling } 476f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling } 486f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling 496f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling} 50