我无法使用 Ti.MEDIA.ShowCamera(...) 在 Android 6.0 中使用 Appcelerator 调出相机。我正在为 Android 和 iOS 做一个基本的概念验证应用程序。它在 iOS 和 Android 4、5 和 5.1 上运行良好。我正在使用最新的 Appcelerator SDK:5.1.2.GA,并在运行 6.0.0 的实际 Nexus 6 以及运行 6.0.0 的 Genymotion Nexus 6 模拟器上进行了测试。
问问题
1347 次
3 回答
2
好吧,我想你已经被 Android 6.0 的新权限击中了。您可以在Titanium 5.1.0 示例应用程序中看到更多信息- 特别是在permissions.js 文件中
目前我自己也在为此苦苦挣扎:-)
编辑:
我无法使用任何模拟器(Android Studio 2.0 beta 附带的 Genymotion 或 Android 模拟器)与 Android 6.0 的新权限等正常工作。前几天我不得不购买一台设备 - 现在我已经修复并测试了我的应用程序中的问题 :-)
我确实花了几天时间尝试使用模拟器获得一个像样的测试环境。但显然所有这些对于 Android 6.0 来说都为时过早 :-(
/约翰
于 2016-01-15T20:38:14.673 回答
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');
}
});
}
于 2016-07-14T07:01:40.687 回答
0
如果您不需要任何 SDK 5.1 功能,您可以回到 5.0.2 左右。那么您就不需要新的 Android 6 权限了。
我在带有 Android 6 (CyanogenMod) 的 Nexus 4 上使用了新权限,在允许之后再次请求权限时我总是会出错。回到 Ti SDK 解决了这个问题。
于 2016-01-16T09:41:00.790 回答