簡體   English   中英

使用 Android 存儲訪問框架獲取文件擴展

[英]Get FIle extension using Android Storage Access Framework

我正在使用 android 中的存儲訪問框架來選擇圖像並在我的應用程序中上傳。 在將這些圖像上傳到我的服務器之前,我還會處理這些圖像(調整大小)。 但是,在 SAF 返回的 URI 中,沒有附加擴展名,我不知道如何獲取文件的擴展名。 我需要區分 png 和 jpeg。 我怎樣才能做到這一點? 從 SAF 返回的示例 uri - content://com.android.providers.media.documents/document/image%3A245309

我的代碼是這樣的


if (resultData != null) {
                        final ClipData clipData = resultData.getClipData();
                        int takeFlags = resultData.getFlags();
                        takeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
                        ArrayList<Uri> uris = new ArrayList<Uri>();
                        if(clipData != null){
                            for (int i = 0; i < clipData.getItemCount(); i++) {
                                ClipData.Item item = clipData.getItemAt(i);
                                Uri dataUri = item.getUri();
                                if (dataUri != null) {
                                    uris.add(dataUri);
                                    Log.d(TAG, "File URI : " + dataUri.toString());
                                }
                            }
                        }else{
                            Uri dataUri = resultData.getData();
                            if (dataUri != null) {
                                uris.add(dataUri);
                            }
                        }
                        processFiles(uris);
                }

我需要區分 png 和 jpeg。 我怎樣才能做到這一點?

ContentResolver上調用getType() ,傳入Uri 這將返回與內容關聯的 MIME 類型,例如image/png

使用簡單存儲要容易得多:

MediaFile file = new MediaFile(context, uri);
String extension = file.getExtension();

暫無
暫無

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

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