Android通過uri獲取資源路徑問題
- /**
- * Get a file path from a Uri. This will get the the path for Storage Access
- * Framework Documents, as well as the _data field for the MediaStore and
- * other file-based ContentProviders.
- *
- * @param context The context.
- * @param uri The Uri to query.
- * @author paulburke
- */
- publicstatic String getPath(
- finalboolean 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
- elseif (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
- elseif (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;
- } elseif ("video".equals(type)) {
- contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
- } elseif ("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)
- elseif ("content".equalsIgnoreCase(uri.getScheme())) {
- return getDataColumn(context, uri, null, null);
- }
- // File
- elseif ("file".equalsIgnoreCase(uri.getScheme())) {
- return uri.getPath();
- }
- returnnull;
- }
- /**
- * 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.
- */
- publicstatic 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()) {
- finalint column_index = cursor.getColumnIndexOrThrow(column);
- return cursor.getString(column_index);
- }
- } finally {
- if (cursor != null)
- cursor.close();
- }
- returnnull;
- }
- /**
- * @param uri The Uri to check.
- * @return Whether the Uri authority is ExternalStorageProvider.
- */
- publicstaticboolean isExternalStorageDocument(Uri uri) {
- return"com.android.externalstorage.documents".equals(uri.getAuthority());
- }
- /**
- * @param uri The Uri to check.
- * @return Whether the Uri authority is DownloadsProvider.
- */
- publicstaticboolean 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.
- */
- publicstaticboolean isMediaDocument(Uri uri) {
-
相關推薦
Android通過uri獲取資源路徑問題
/** * Get a file path from a Uri. This will get the the path for Storage Access * Framework Documents, as well as the _data field for th
android 通過uri獲取bitmap圖片並壓縮
很多人在呼叫相簿選擇圖片時會在onActivityResult中用Media.getBitmap來獲取返回的圖片,如下: Uri mImageCaptureUri = data.getData(); Bitmap photoBmp = null; if (mImageCap
android 通過uri獲取圖片並根據限制大小讀取圖片的方法
uri = data.getData();BitmapFactory.Options options =newBitmapFactory.Options(); options.inJustDecodeBounds =true;try{Bitm
android選擇圖片,通過uri獲取路徑
roi con sch project else mov providers tex exc /** * 根據Uri獲取圖片的絕對路徑 * * @param context 上下文對象 * @param uri 圖片
Android中通過反射獲取資源Id
package com.cp.utils; import android.content.Context; public class CPResourceUtil { public static int getLayoutId(Context paramContext, String par
Android 小筆記 Uri獲取絕對路徑 、路徑轉Bitmap、獲取螢幕截圖
1. Uri獲取絕對路徑 public static String getRealPathFromURI(Context mContext, Uri contentUri) { St
Android 通過手機資料夾路徑,得到 某張 照片 的 詳細/詳情/資訊的獲取
Main import android.annotation.SuppressLint; import android.app.Activity; import android.content.pm.ActivityInfo; import android.databas
Android Uri獲取真實路徑以及檔名的方法
在Android 程式設計中經常會用到uri轉化為檔案路徑 下面是4.4後通過Uri獲取路徑以及檔名一種方法 public static String getRealFilePath( fin
weblogic上獲取資源路徑
路徑 context gpo 方法 etc tcl thread ren class weblogic和tomcat下通用的獲取路徑或者加載資源的方法 1、獲取路徑 this.getClass().getClassLoader().getResource("/").getP
Java class.getClassLoader().getResource("")獲取資源路徑
Java web專案打包部署時發現出現平時開發過程中沒有出現的錯誤,檢視日誌發現是因為程式碼中 獲取配置檔案路徑有誤。 一、錯誤分析 專案中程式碼: webRootPath = MySqlDbPoolConnection.class.getClassLoader().getRe
android 通過地址獲取經緯度
這是通過google原生介面獲取的經緯度 public static Address getGeoPointBystr(Context context,String str) { Addres
Android 通過網路獲取圖片的原始碼
將開發過程中經常用到的內容做個備份,如下的資料是關於Android 通過網路獲取圖片的的內容。 package com.netimg; import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bi
Android 通過Handler獲取當前時間
一言不合就上程式碼 public class HandlerDemoActivity extends AppCompatActivity { private Button getTime; private TextView setTime; @Overri
34-java-獲取資源路徑
01.獲取路徑 02.獲取資源流 03.獲取路徑下所有資源的路徑 @Override public void doGet(HttpServletRequest req, HttpS
NSBundle(獲取資源路徑方法)的相關使用方法和注意事項
1、[NSBundle mainBundle],資料夾其實是Group,如左側的樹形檔案管理器 Build之後,檔案直接就複製到了根目錄下,於是讀取的方法,應該是這樣: NSString *earth = [[NSBundle mainBundle] pat
NSBundle 獲取資源路徑
之前在初始化一個類的時候:TestViewController *viewcontroller=[[TestViewController alloc]initWithNibName:@"TestViewController" bundle:[NSBundle mainB
javaWeb專案中的路徑格式 請求url地址 客戶端路徑 服務端路徑 url-pattern 路徑 獲取資源路徑 地址 url
javaweb專案中有很多場景的路徑客戶端的POST/GET請求,伺服器的請求轉發,資源獲取需要設定路徑等這些路徑表達的含義都有不同,所以想要更好的書寫規範有用的路徑程式碼 需要對路徑有一個清晰地認知 路徑基本上分三類 客戶端路徑 服務端路徑
Android——通過GPS獲取使用者地理位置並監聽位置變化
這個功能挺簡單的,最近用到了就總結下: 1、開啟地理位置監聽: /* * 開啟地理位置監聽 */ public void registerGpsListener(Context context) { Log
Android通過findViewById()獲取控制元件為NULL
如果在activity中直接呼叫findViewById方法,它的完整形式是this.findViewById().而我所需要的控制元件是不存在本身activity的佈局中的.所以要通過控制元件所在的view呼叫findViewById方法,就可以獲取到正確的控制元件了
Java獲取資源路徑下的檔案、模板
工作時有個需求是需要傳送html格式的郵件,這裡我們不討論發郵件的事,而是講一講如何從java專案的資源路徑下獲取自定義的資原始檔或者模板。我這裡是需要獲取html檔案的內容,並替換其中的資訊,傳送html格式的郵件。 HTML檔案內容如下: <!DOCTYPE html&