Android 三星s系列或谷歌像素设备上找不到钛合金appcelerator摄像头
我正在使用Appcelerator钛合金开发一款移动应用程序。下面的代码打开相机,允许用户拍照,并在所有iOS设备和我能够测试的大多数安卓设备(包括摩托罗拉、LG、松下、三星)上成功地将其连接到电子邮件模板上(不是s系列)。当我试图在某些设备上打开相机时(目前只有三星S7和谷歌Pixel,但我对设备的访问受到限制),我得到一个错误: [错误]:TiMedia:(KrollRuntimeThread)[12968135705]无法创建外部存储目录。 我在Appcelerator studio中看到了这个错误,在设备上我看到了弹出消息“请在设备上运行此测试”,这意味着如果(error.code==Titanium.Media.NO_CAMERA)下面的行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中看到
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