Android 三星s系列或谷歌像素设备上找不到钛合金appcelerator摄像头

Android 三星s系列或谷歌像素设备上找不到钛合金appcelerator摄像头,android,android-camera,appcelerator-titanium,titanium-alloy,Android,Android Camera,Appcelerator Titanium,Titanium Alloy,我正在使用Appcelerator钛合金开发一款移动应用程序。下面的代码打开相机,允许用户拍照,并在所有iOS设备和我能够测试的大多数安卓设备(包括摩托罗拉、LG、松下、三星)上成功地将其连接到电子邮件模板上(不是s系列)。当我试图在某些设备上打开相机时(目前只有三星S7和谷歌Pixel,但我对设备的访问受到限制),我得到一个错误: [错误]:TiMedia:(KrollRuntimeThread)[12968135705]无法创建外部存储目录。 我在Appcelerator studio中看到

我正在使用Appcelerator钛合金开发一款移动应用程序。下面的代码打开相机,允许用户拍照,并在所有iOS设备和我能够测试的大多数安卓设备(包括摩托罗拉、LG、松下、三星)上成功地将其连接到电子邮件模板上(不是s系列)。当我试图在某些设备上打开相机时(目前只有三星S7和谷歌Pixel,但我对设备的访问受到限制),我得到一个错误:

[错误]:TiMedia:(KrollRuntimeThread)[12968135705]无法创建外部存储目录。

我在Appcelerator studio中看到了这个错误,在设备上我看到了弹出消息“请在设备上运行此测试”,这意味着如果(error.code==Titanium.Media.NO_CAMERA)下面的行
if,它必须返回true

此时我已请求外部存储权限和相机权限。我不明白为什么这种情况只发生在某些设备上,而且似乎并不是特定于某个版本的Android操作系统。任何帮助都将不胜感激

var takePic = Ti.UI.createButton({
        width : 127,
        height : 42,
        bottom : 50,
        left : 8,
        title : 'Take a picture',
        color : "#fff",
        backgroundColor : "#555555",
        borderColor : "#FFFFFF",
        borderRadius : "10px",
        borderWidth : "1px"

    });

takePic.addEventListener('click', function(e) {
        var win = Titanium.UI.createWindow({//Open Camera

        });

        Titanium.Media.showCamera({
            success : function(event) {
                if (event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) {

                    win = Titanium.UI.currentWindow;

                    if (osName == "android") {
                        var img_view = Titanium.UI.createImageView({
                            height : '100%',
                            width : '100%',
                        });

                        win.add(img_view);
                    }
                    try {
                        picURL = event.media;
                        picRaw = event.media;
                        pictureSet = true;
                        $.videoButton.enabled = false;
                        $.videoButton.backgroundColor = "#DDDDDD";
                        $.savePic.show();
                        format = "Picture";
                    } catch(e) {
                        alert("An Error:" + e.message);
                    }

                } else {
                    var alert = createErrorAlert({
                        text : "An error occured getting the media. Please check file size and format and try again."
                    });
                    $.yesLatLon.add(alert);
                    alert.show();
                }

            },
            cancel : function() {
                //called when user cancels taking a picture

            },
            error : function(error) {
                //called when there's an error
                var a = Titanium.UI.createAlertDialog({
                    title : 'Camera'
                });
                if (error.code == Titanium.Media.NO_CAMERA) {
                    a.setMessage('Please run this test on device');
                } else {
                    a.setMessage('Unexpected error: ' + error.code);
                }
                a.show();
            },
            saveToPhotoGallery : true,
            allowEditing : false,
            autohide : true, //Important!
            mediaTypes : [Ti.Media.MEDIA_TYPE_PHOTO]
        });
        alert.hide();
    });

似乎是权限问题。每当你在安卓系统上拍照时,它都会尝试将照片储存在手机中。确保您正在请求使用文件系统和相机的存储权限。我在Tiapp.xml