Android Open Source - groundify-android Image File Path






From Project

Back to project page groundify-android.

License

The source code is released under:

GNU General Public License

If you think the Android project groundify-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package deftsoft.android.iground.utility;
//from  w ww .j ava 2  s . co  m
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;

@TargetApi(Build.VERSION_CODES.KITKAT) public class ImageFilePath {

  
  
  /**
    * Method for return file path of Gallery image
    *
    * @param context
    * @param uri
    * @return path of the selected image file from gallery
    */
   @TargetApi(Build.VERSION_CODES.KITKAT) @SuppressLint("NewApi") public static String getPath(final Context context, final Uri uri)
   {
   
    //check here to KITKAT or new version
    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];
      }
     }
     // 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 ("image".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());
   }
  
  
  
}




Java Source Code List

.ConsequenceImageGridActivity.java
custom.adapter.pckg.GridAdapter.java
custom.adapter.pckg.MyAdapter.java
custom.adapter.pckg.MyLazyAdapter.java
custom.adapter.pckg.MySpinnerAdapter.java
deftsoft.android.iground.utility.Base64.java
deftsoft.android.iground.utility.ChildDetail.java
deftsoft.android.iground.utility.DatePickerFragment.java
deftsoft.android.iground.utility.DeleteChildWebResponse.java
deftsoft.android.iground.utility.GetNewCosequence.java
deftsoft.android.iground.utility.HttpUploader.java
deftsoft.android.iground.utility.ImageFilePath.java
deftsoft.android.iground.utility.SetConSeqWebServiceWebResponse.java
deftsoft.android.iground.utility.SignupDetail.java
deftsoft.android.iground.utility.TimePickerFragment.java
deftsoft.android.iground.utility.Utility.java
deftsoft.android.iground.utility.ViewConseqDetail.java
deftsoft.android.iground.utility.WebServiceLinks.java
deftsoft.android.iground.utility.WebServiceResponse.java
deftsoft.android.image.upload.Base64.java
deftsoft.android.image.upload.UploadImageToServer.java
deftsoft.iground.android.AddChildScreen.java
deftsoft.iground.android.AddConsequenceActivity.java
deftsoft.iground.android.BridgeClass.java
deftsoft.iground.android.CopyOfConsequenceImageGridActivity.java
deftsoft.iground.android.DeleteChildScreen.java
deftsoft.iground.android.GrounChild.java
deftsoft.iground.android.HomeScreenActivity.java
deftsoft.iground.android.Home.java
deftsoft.iground.android.LogInScreenActivity.java
deftsoft.iground.android.MyHttpClient.java
deftsoft.iground.android.SignUpScreenActivity.java
deftsoft.iground.android.ThankYouActivity.java
deftsoft.iground.android.UILApplication.java
deftsoft.iground.android.ViewConsequence.java
deftsoft.iground.android.CustomizeListView.AbsListViewBaseActivity.java
deftsoft.iground.android.CustomizeListView.BaseActivity.java
deftsoft.iground.android.CustomizeListView.Constants.java
iground.child.interfaces.Consequnceselected.java