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

Ti.MEDIA.ShowCamera does not show camera on Android OS 6

我无法使用 Ti.MEDIA.ShowCamera(...) 在 Android 6.0 中使用 Appcelerator 调出相机。我正在为 Android 和 iOS 做一个基本的概念验证应用程序。它在 iOS 和 Android 4、5 和 5.1 中运行良好。我正在使用最新的 Appcelerator SDK:5.1.2.GA 并在实际的 Nexus 6 运行 6.0.0 和 Genymotion Nexus 6 模拟器 运行 6.0.0 上进行了测试。

好吧,我认为您受到了 Android 6.0 的新权限的影响。您可以在 Titanium 5.1.0 sample app - specifically in the permissions.js file

中查看更多内容

目前我自己也在为此苦苦挣扎:-)

编辑:

我无法使用任何模拟器(Genymotion 或 Android 模拟器随 Android Studio 2.0 beta 一起提供)以正确使用新权限等 Android 6.0。前几天我不得不买一个设备 - 现在我已经修复并测试了我的应用程序中的问题:-)

我确实用了几天时间尝试使用模拟器获得一个像样的测试环境。但显然所有这些对于 Android 6.0 来说都太早了:-(

/约翰

如果您不需要任何 SDK 5.1 功能,您可以回到 5.0.2 左右。那么你不需要新的 Android 6 权限。

我在带有 Android 6 (CyanogenMod) 的 Nexus 4 上使用了新权限,在允许后再次请求权限时我总是得到 false。返回 Ti SDK 解决了问题。

从 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');
            }
     });
 }