android - Cordova 3.4.0 : Camera. getPicture() 从 GALLERY 中选择时返回编码的 URI

标签 android cordova

我正在使用 Camera.getPicture() API 来捕获图像或从图库中选择图像。 当我使用相机拍照时,它会返回具有正确 URL 的 FileEntry 以及文件名和扩展名。但是当我从图库中选择一个文件时,它返回“FileEntry.fullPath”作为/com.android.providers.media.documents/document/image%3A322 有时/media/external/images/media/319

我想要的是,我想验证支持的文件类型(即 jpg/jpeg)和实际文件名。

有没有办法获取选中的带扩展名的文件名。

提前致谢。

代码 fragment :

        var data = {};
        if( type === CAMERA){
            data = {
                        quality: quality,
                        destinationType: FILE_URI,
                        encodingType: JPEG, targetWidth: 1200, targetHeight: 1200,
                        saveToPhotoAlbum: true
                    };
        }
        else
        {
            data = {
                        destinationType: FILE_URI,
                        sourceType: PHOTOLIBRARY,
                        mediaType: ALLMEDIA

                    };
        }


        navigator.camera.getPicture(
                successCallback, errorCallback, data
        );   

      //The success callback method is : 
       successCallback: function(imageURI, param)
       {
                 //HERE THE imageURI value is coming with different format if selected from GALLERY
                 window.resolveLocalFileSystemURI(imageURI, 
            function(fileEntry) {fileEntry.file(onSuccess,onError);},
                            function(evt) {onError.call(this,evt.target.error);} );

       }

最佳答案

我能够使用此插件将“content://”URI 转换为“file://”URI:https://www.npmjs.com/package/cordova-plugin-filepath .

获得“file://”URI 后,我就可以使用 Cordova 的 resolveLocalFileSystemURL() 函数。

希望这对您有所帮助。

if (fileUri.startsWith("content://")) {
    //We have a native file path (usually returned when a user gets a file from their Android gallery)
    //Let's convert to a fileUri that we can consume properly
    window.FilePath.resolveNativePath(fileUri, function(localFileUri) {
        window.resolveLocalFileSystemURL("file://" + localFileUri, function(fileEntry) {/*Do Something*/});
    });
}

关于android - Cordova 3.4.0 : Camera. getPicture() 从 GALLERY 中选择时返回编码的 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22814849/

相关文章:

android - 在 android 4.0.3 中使用键盘时遇到困难?

android - 自定义微调器项目未作为微调器的一部分出现

使用smack的android文件传输

javascript - 使用 javascript 的 Android 导航包装

android - 如何在 phone gap android 中设置完整屏幕的背景图片?

android - 导航架构组件-如何刷新 fragment ?

java - 如何通过FTP读取文本文件?

android - 使用 PhoneGap 将 Xcode iPhone 应用程序转换为 Android 应用程序

android - Cordova 的麦克风,音频许可

image - Phonegap 从画廊/相机中选择多个图像