在通过Ionic 3允许系统许可后,Android设备的摄像头无法打开

时间:2019-02-12 07:05:38

标签: android typescript cordova ionic3 android-7.0-nougat

我想在我的应用中使用相机插件。我请求了摄像头许可,但是在允许摄像头打开后

在后续设备上尝试  -Moto g4 plus    安卓7.0版

以下是离子信息

cli软件包:(C:\ Users \ username \ AppData \ Roaming \ npm \ node_modules)     @ ionic / cli-utils:1.19.3     离子(Ionic CLI):3.20.1

全局软件包:     科尔多瓦(Cordova CLI):8.1.2(cordova-lib@8.1.1)

本地软件包:     @ ionic / app-scripts:3.2.0     Cordova平台:Android 7.0.0浏览器5.0.4     离子框架:离子角3.9.2

系统:     Android SDK工具:25.2.5     节点:v8.11.1     npm:5.6.0     作业系统:Windows 10

环境变量:     ANDROID_HOME:C:\ android-sdk-win

其他:     后端:专业

以下是我的代码

openCamera(){

    this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
        result => {
            alert(result.hasPermission);
            if(!result.hasPermission) {
                this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA)
                .then( cam => {
                    alert('permission result '+ JSON.stringify(cam) );
                    this.capturingPicture();
                })
                .catch( error => {
                    alert('permission error occured '+ JSON.stringify(error) );
                });
            } else {
                this.capturingPicture();
            }
        },
        err => {
            this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA); 
        });
}

正在显示图片功能警报,但设备相机未打开。

capturingPicture(){
    alert('capturingPicture');

    const options: CameraOptions = {
        mediaType: this.camera.MediaType.PICTURE,
        quality : 75, 
                   destinationType : this.camera.DestinationType.DATA_URL, 
                   sourceType : this.camera.PictureSourceType.CAMERA, 
                  allowEdit : true,
                  encodingType: this.camera.EncodingType.JPEG,
                  targetWidth: 300,
                  targetHeight: 300,
                 saveToPhotoAlbum: false
    };

    this.camera.getPicture(options).then((imageData) => {
        let base64Image = 'data:image/jpeg;base64,' + imageData;
        alert('image data => '+ imageData);
    }, (err) => {
        // Handle error
        alert('get picture error => '+ err);
    });
}

根据文档,编写了代码,但是仍然没有得到是代码/插件/版本/ OS等问题。 请以此指导我。

谢谢。

1 个答案:

答案 0 :(得分:1)

使用以下命令在ionic 3中安装相机

  

npm install --save @ ionic-native / camera @ 4