1. 程式人生 > >android呼叫系統檔案瀏覽器獲得uri或者檔案路徑

android呼叫系統檔案瀏覽器獲得uri或者檔案路徑

基本思路:

1.使用隱式intent和startActivityforResult開啟系統檔案瀏覽器。

2.使用onAcitivityRsult方法接受返回的 intent,取出其中包含的uri(注意這不是檔案路徑,但是和檔案路徑可以相互轉化)。

3.下面註釋的就是其中的獲取檔案路徑的程式碼。要注意根據你選擇的檔案型別修改MediaStore.後面的內容。也就是把Image換成音訊或者其他的。只有對應才能正確的解析。

還有一些專門講述二者相互轉的文章。請自行搜尋。 

//Cursor actualimagecursor = managedQuery(uri, proj, null, null, null);
           // int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
           // actualimagecursor.moveToFirst();
            //String img_path = actualimagecursor.getString(actual_image_column_index);
          //  File file = new File(img_path);
           // Toast.makeText(MainActivity.this, file.toString(), Toast.LENGTH_SHORT).show();

public class MainActivity extends Activity {



        Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }
    
    private void initView(){
   
        btn= (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("*/*");//設定型別,我這裡是任意型別,任意字尾的可以這樣寫。
                intent.addCategory(Intent.CATEGORY_OPENABLE);
                startActivityForResult(intent,1);
            }
        });
    }
    
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK) {//是否選擇,沒選擇就不會繼續
            Uri uri = data.getData();//得到uri,後面就是將uri轉化成file的過程。
            String[] proj = {MediaStore.Images.Media.DATA};
            //Cursor actualimagecursor = managedQuery(uri, proj, null, null, null);
           // int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
           // actualimagecursor.moveToFirst();
            //String img_path = actualimagecursor.getString(actual_image_column_index);
          //  File file = new File(img_path);
           // Toast.makeText(MainActivity.this, file.toString(), Toast.LENGTH_SHORT).show();
            Toast.makeText(MainActivity.this, uri.toString(), Toast.LENGTH_SHORT).show();
        }
    }
}

相關推薦

android呼叫系統檔案瀏覽器獲得uri或者檔案路徑

基本思路: 1.使用隱式intent和startActivityforResult開啟系統檔案瀏覽器。 2.使用onAcitivityRsult方法接受返回的 intent,取出其中包含的uri(注意這不是檔案路徑,但是和檔案路徑可以相互轉化)。 3.下面註釋的就是其中的

Android 呼叫系統的分享介面,進行檔案分享

 //分享文字       public void shareText(View view) {           Intent shareIntent = new Intent();   &nbs

Android 呼叫系統圖片瀏覽器

在做各種專案的時候會經常遇到需要呼叫系統圖片檢視器來檢視自己需要檢視的圖片,因為這樣就可以在圖片上實現多點觸控,放大和縮小,並且在提高效率的同時又能有很好的體驗。 下面的程式碼便是呼叫系統圖片檢視器來檢視自己的圖片的關鍵程式碼: //獲取你選中的是那一張圖片(ID值

android 呼叫系統瀏覽器

方法一: Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); intent.addCategory(Intent.CATEGORY_BROWSABLE); Uri conten

Android呼叫系統自帶的檔案管理器,開啟指定路徑

一、開啟系統自帶的檔案管理器 if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { showToast(R.string.msg_

Android開發工具之Android Studio--呼叫系統隱藏方法之操作aidl檔案步驟

 android studio的aidl檔案是用來跨程序訪問的,在很多的android 程式開發過程中都會需要建立一個AIDL服務,AIDL服務是什麼,使用android studio建立AIDL

Android呼叫系統相機、相簿功能,適配6.0許可權獲取以及7.0以後獲取URI(相容多版本)

  Android中呼叫系統相機來拍攝照片的程式碼,如下:1、首先設定Uri獲取判斷以及相機請求Codepublicfinalint TYPE_TAKE_PHOTO = 1;//Uri獲取型別判斷publicfinalint CODE_TAKE_PHOTO = 1;//相機R

Android呼叫系統圖庫

//呼叫系統圖庫 Intent intent = new Intent(Intent.ACTION_PICK, null); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startAc

Android 呼叫系統郵箱傳送郵件

做需求遇到了需要調起系統郵箱並且顯示特定標題 因此去搜索了 N 多資料查詢怎麼實現 val uri = Uri.parse(activity.getString(R.string.tip_em

解決Android呼叫系統相機連續拍照出現的記憶體溢位問題

記憶體溢位相信做過程式設計的人都知道一二,這裡說Android 記憶體溢位的問題:、問題描述:Android下的相機在獨自使用時,拍照沒有問題,通過我們的程式碼呼叫時,也正常,但是更換了不同廠商的平板,ROM由Android4.0變成了Android4.1後,拍照出現了Out

Android 呼叫系統dialog

前幾天由於專案中要用到dialog,看了一下系統的dialog,發現符合公司需要,因此剛好寫了下來。在此記錄並分享一下。 基本樣式(普通對話方塊) 普通樣式,呼叫系統的確定按鈕,由於樣式比較難看。所以很少用。 程式碼: private voi

Android呼叫系統的相機保證照片的質量

package camera.com.example.gzh.camera; import android.content.Intent; import android.graphics.Bitma

Android呼叫系統相機

簡述:   Android開發中會經常遇到呼叫系統相機功能的場景,今天總結一下Camera的基本使用。                                                     技術點:     1、首先要考慮許可權問題,Android6.0

Android呼叫系統, 任意比例裁剪圖片

廢話不多說,直接上程式碼 核心程式碼: /** * 跳轉到系統裁剪圖片頁面 * @param imagePath 需要裁剪的圖片路徑 */ private void cropPic(String imagePath) { File file =

Android 呼叫系統安裝好的播放器進行播放視訊

Intent intent = new Intent(Intent.ACTION_VIEW); String bpath = "file://" + videoPath; intent.setDataAndType(Uri.parse(bpath), "v

Android呼叫系統安裝apk的注意事項

對於7.0及其以上的裝置我們需要做如下操作: 1.在manifest中註冊FileProvider <provider android:name="android.support.

Android 呼叫系統相機,拍照,並上傳圖片所注意的一些問題

其實android拍照這個地方還是有很多注意事項的,我在上個專案中就遇到一些坑,因此我想把它記錄下來,希望能幫助一些跟我遇到的同樣的問題的人 如果你在專案中遇到以下問題: 通過系統路徑,拍出來的圖片不清楚 在某些情況下,onActivityResult

Android 呼叫系統相機回撥後的處理

宣告一個路徑: protected static String tempFileDic = Environment.getExternalStorageDirectory() + File.separator + Constant.PROJECT_

android 呼叫系統照相機拍照後儲存到系統相簿,在系統圖庫中能看到

需求:  呼叫系統照相機進行拍照,並且儲存到系統相簿,呼叫系統相簿的時候能看到 系統相簿的路徑:String cameraPath= Environment.getExternalStorageDi

Android 使用系統下載管理器DownloadManager下載檔案

使用系統下載管理器,主要有兩個類:DownloadManager, DownloadManager.Request 1.建立一個下載    宣告一個DownloadManager物件 private DownloadManager mDownloadManager; m