【问题标题】:CaptureError.CAPTURE_INTERNAL_ERR on Android trying to use capture.captureImageAndroid 上的 CaptureError.CAPTURE_INTERNAL_ERR 尝试使用 capture.captureImage
【发布时间】:2014-10-08 06:56:42
【问题描述】:

我正在尝试使用 VS 2013 更新 3 和多设备混合应用扩展 (Cordova v3.5.0) 为 Android 编写混合应用。除了媒体捕获插件外,一切都运行良好。我正在调用 navigator.device.capture.captureImage(MediaCaptureSuccess, MediaCaptureError, { limit: 3 }) 打开相机应用程序。我可以拍照,但是当我在设备上单击“确定”时,我的错误回调是使用 CaptureError.CAPTURE_INTERNAL_ERR 执行的,没有其他信息。我尝试切换到 org.apache.cordova.media-capture@0.3.4(当前使用 0.3.1),但是当我尝试编译时,当它尝试检索它时出现插件错误。我在调试输出中搜索了线索,唯一发现的是以下行“包中的未知权限 android.permission.RECORD_VIDEO ...”,但这似乎是一个有效的用户权限。当我查看构建生成的 capture.java 时,可以看到如果发生 IOException,则会返回此错误。

有人对如何解决这个问题或下一步检查什么有任何建议吗?

【问题讨论】:

    标签: multi-device-hybrid-apps


    【解决方案1】:

    试试这个插件

    配置:

    <vs:feature>org.apache.cordova.camera@0.3.0</vs:feature>
    

    JS:

      navigator.camera.getPicture(onSuccess, onFail, {
            quality: 30,
            destinationType: Camera.DestinationType.FILE_URI,
            saveToPhotoAlbum: true
        });
    

    【讨论】:

    • 查看此插件的代码,我可以看到它与媒体捕获插件没有相同的问题,并且可能会起作用。问题是我还希望能够拍摄相机插件似乎不支持的视频。看来这个插件会起作用,因为它首先尝试使用 SD 卡,而媒体捕获插件却没有。核心问题是从 getTempDirectoryPath 调用的 cordova.getActivity().getCacheDir() 返回 /data/data/com.packagename/cache (内部存储),并且对 cache.mkdirs() 的调用静默失败。权限问题??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    相关资源
    最近更新 更多