簡體   English   中英

如何從 android 中的內容 uri 獲取文件路徑?

[英]how to get file path from content uri in android?

所以我的問題是我想從內容 uri 獲取文件路徑,我用谷歌搜索但沒有得到任何解決方案,請幫助我解決這個問題。

這是我嘗試過的代碼

 Intent getPdf = getIntent();
        String action = getPdf.getAction();
        String type = getPdf.getType();
        Log.d("sdsfgsdfsdf",""+type);
        if (Intent.ACTION_SEND.equals(action) ||Intent.ACTION_VIEW.equals(action) || type != null){
            if (type.startsWith("application/pdf")){
                viewPdf(getPdf,action);
            }
        }

     private void viewPdf(Intent getPdf, String action) {
        Uri uri = Uri.parse(getPdf.getData().toString());

        if (uri != null) {
            File file = new File(String.valueOf(uri.getPath()));
            name = file.getName();
            path = String.valueOf(uri);
            Log.d("sdsfgsdfsdf",""+name);
        }else {
//            Toast.makeText(this, ""+ uri.toString(), Toast.LENGTH_SHORT).show();

        }
    }

這是 output 內容://com.android.externalstorage.documents/document/primary%3AWhatsApp%2FMedia%2FWhatsApp%20Documents%2FAJAX_And_PHP_Building_Responsive_Web_Applications-(2006).pdf

但我想獲取 file:// 路徑而不是內容 uri

目前還不清楚你從哪里得到那個內容方案的 uri。

你應該從那個開始

此外,嘗試為其獲取路徑是沒有意義的,因為大多數情況下您將沒有讀取權限。

此外,您沒有說出為什么要一條路

使用 uri。 使用內容方案。

您可以使用PickiT庫從 URI 獲取路徑。

如何使用它的示例代碼。

PickiT pickiT = new PickiT(this, new PickiTCallbacks() {
        @Override
        public void PickiTonUriReturned() {
        }

        @Override
        public void PickiTonStartListener() {
        }

        @Override
        public void PickiTonProgressUpdate(int progress) {
        }

        @Override
        public void PickiTonCompleteListener(String filePath, boolean wasDriveFile, boolean wasUnknownProvider, boolean wasSuccessful, String Reason) {
            if (wasSuccessful) {
                // Use file path
            }
        }
        @Override
        public void PickiTonMultipleCompleteListener(ArrayList<String> paths, boolean wasSuccessful, String Reason) {

        }
    }, this);

pickiT.getPath(uri, Build.VERSION.SDK_INT);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM