/**
* uri转path
*/
public static String getRealFilePath ( final Context context , final Uri uri ) {
if ( null == uri ) return null;
final String scheme = uri.getScheme() ;
String data = null;
if ( scheme == null )
data = uri.getPath() ;
else if ( ContentResolver. SCHEME_FILE .equals( scheme ) ) {
data = uri.getPath() ;
} else if ( ContentResolver. SCHEME_CONTENT .equals( scheme ) ) {
Cursor cursor = context.getContentResolver().query( uri , new String[] { MediaStore.Images.ImageColumns. DATA } , null, null, null ) ;
if ( null != cursor ) {
if ( cursor.moveToFirst() ) {
int index = cursor.getColumnIndex( MediaStore.Images.ImageColumns. DATA ) ;
if ( index > - 1 ) {
data = cursor.getString( index ) ;
}
}
cursor.close() ;
}
}
return data ;
}
/**
* path转uri
*/
private Uri getUri (String path){
Uri uri = null;
if (path != null ) {
path = Uri. decode (path) ;
Log. d ( TAG , "path2 is " + path) ;
ContentResolver cr = this .getContentResolver() ;
StringBuffer buff = new StringBuffer() ;
buff.append( "(" )
.append(MediaStore.Images.ImageColumns. DATA )
.append( "=" )
.append( "'" + path + "'" )
.append( ")" ) ;
Cursor cur = cr.query(
MediaStore.Images.Media. EXTERNAL_CONTENT_URI ,
new String[] { MediaStore.Images.ImageColumns. _ID } ,
buff.toString() , null, null ) ;
int index = 0 ;
for (cur.moveToFirst() ; !cur.isAfterLast() ; cur
.moveToNext()) {
index = cur.getColumnIndex(MediaStore.Images.ImageColumns. _ID ) ;
// set _id value
index = cur.getInt(index) ;
}
if (index == 0 ) {
//do nothing
} else {
Uri uri_temp = Uri. parse ( "content://media/external/images/media/" + index) ;
Log. d ( TAG , "uri_temp is " + uri_temp) ;
if (uri_temp != null ) {
uri = uri_temp ;
}
}
}
return uri ;
}
* uri转path
*/
public static String getRealFilePath ( final Context context , final Uri uri ) {
if ( null == uri ) return null;
final String scheme = uri.getScheme() ;
String data = null;
if ( scheme == null )
data = uri.getPath() ;
else if ( ContentResolver. SCHEME_FILE .equals( scheme ) ) {
data = uri.getPath() ;
} else if ( ContentResolver. SCHEME_CONTENT .equals( scheme ) ) {
Cursor cursor = context.getContentResolver().query( uri , new String[] { MediaStore.Images.ImageColumns. DATA } , null, null, null ) ;
if ( null != cursor ) {
if ( cursor.moveToFirst() ) {
int index = cursor.getColumnIndex( MediaStore.Images.ImageColumns. DATA ) ;
if ( index > - 1 ) {
data = cursor.getString( index ) ;
}
}
cursor.close() ;
}
}
return data ;
}
/**
* path转uri
*/
private Uri getUri (String path){
Uri uri = null;
if (path != null ) {
path = Uri. decode (path) ;
Log. d ( TAG , "path2 is " + path) ;
ContentResolver cr = this .getContentResolver() ;
StringBuffer buff = new StringBuffer() ;
buff.append( "(" )
.append(MediaStore.Images.ImageColumns. DATA )
.append( "=" )
.append( "'" + path + "'" )
.append( ")" ) ;
Cursor cur = cr.query(
MediaStore.Images.Media. EXTERNAL_CONTENT_URI ,
new String[] { MediaStore.Images.ImageColumns. _ID } ,
buff.toString() , null, null ) ;
int index = 0 ;
for (cur.moveToFirst() ; !cur.isAfterLast() ; cur
.moveToNext()) {
index = cur.getColumnIndex(MediaStore.Images.ImageColumns. _ID ) ;
// set _id value
index = cur.getInt(index) ;
}
if (index == 0 ) {
//do nothing
} else {
Uri uri_temp = Uri. parse ( "content://media/external/images/media/" + index) ;
Log. d ( TAG , "uri_temp is " + uri_temp) ;
if (uri_temp != null ) {
uri = uri_temp ;
}
}
}
return uri ;
}