我无法使用Ti.MEDIA.ShowCamera(...)在Android 6.0中使用Appcelerator启动相机。我正在为Android和iOS做一个基本的Proof of Concept应用程序。它适用于iOS和Android 4,5和5.1。我正在使用最新的Appcelerator SDK:5.1.2.GA,并在运行6.0.0的实际Nexus 6以及运行6.0.0的Genymotion Nexus 6 Emulator上进行了测试。
答案 0 :(得分:2)
好吧,我认为您已经被Android 6.0的新权限所击中。您可以在Titanium 5.1.0 sample app中看到更多内容 - 特别是permissions.js file
此刻我自己也在苦苦挣扎: - )
<强> 编辑: 强>
我无法使用任何模拟器(Genymotion或附带Android Studio 2.0测试版的Android模拟器)正确使用Android 6.0的新权限等。前几天我不得不买一台设备 - 现在我已修复并测试了我的应用中的问题: - )
我确实用了几天时间尝试使用模拟器获得了不错的测试环境。但显然所有这些对于Android 6.0来说还为时过早: - (
/约翰
答案 1 :(得分:2)
从android 5.4,android在运行时询问这些权限。所以你首先需要询问用户的许可。如果他授予许可,则可以使用唯一的相机。 您可以使用以下代码。
if (Ti.Media.hasCameraPermissions()) {
logicToShowCamera(e);//Write showCamera related logic here....
}else{
Ti.Media.requestCameraPermissions(function(obj) {
if (obj.success) {
logicToShowCamera(e);
} else {
alert('Please Provide permission first');
}
});
}
答案 2 :(得分:0)
如果您不需要任何SDK 5.1功能,可以返回5.0.2左右。然后,您不需要新的Android 6权限。
我在使用Android 6(CyanogenMod)的Nexus 4上使用了新权限,并且在允许后再次请求权限时我总是得到错误。回到Ti SDK解决了这个问题。