if (Capture.hasCamera()){
Dialog.show("Appareil photo détecté", "Votre matériel est bien équipé d'un appareil photo!", "OK", null);
}
我这样做是因为Codename One博客指出:
android.hardware.camera和android.permission.RECORD_AUDIO - 由com.codename1.Capture触发
然而,在使用我从CN1获取的源代码在Android Studio上调试应用程序时,我总是在真实设备(API LEVEL 19即Kit Kat)上遇到java.lang.RuntimeException:Fail to connect to camera service
。
过了一会儿,我意识到异常是由于manifest.xml中缺少以下权限造成的:
<uses-permission android:name="android.permission.CAMERA" android:required="false"/>
请注意,如CN1博客所述,行<uses-feature android:name="android.hardware.camera" android:required="false" />
已由CN1添加。
现在,我已经添加了这一行,直播预览也可以正常显示。
为什么不自动将此权限添加到清单中?我真的需要将其添加到构建提示中吗?
此外,我有另一个项目,使用相机拍照并将其保存在手机上,相机权限既未显示(在Android应用程序信息中),也未在应用程序安装期间请求,但它完全正常工作。请注意,例如Twitter应用程序在应用程序权限中显示“拍照和录制视频”,因此似乎不是手机隐藏相机权限的问题。
编辑于2016年11月20日:
确实Android开发者指南指出:
注意:如果您通过调用现有相机应用程序来使用相机,则您的应用程序不需要请求此权限。
这就是为什么CN1不需要此权限!
感谢帮助我正确管理CN1权限。