Ti.MEDIA.ShowCamera在Android OS 6上没有显示摄像头

时间:2016-01-15 16:19:40

标签: android appcelerator appcelerator-titanium

我无法使用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上进行了测试。

3 个答案:

答案 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解决了这个问题。