我试图在Codename One中显示后置摄像头的实时预览.我使用原生界面(我首先针对的是Android).
为了让我的应用程序能够使用相机而不会弄乱构建提示,我在主窗体中添加了以下行:
if (Capture.hasCamera()){
Dialog.show("Appareil photo détecté", "Votre matériel est bien équipé d'un appareil photo!", "OK", null);
}
android.hardware.camera & android.permission.RECORD_AUDIO – are triggered by com.codename1.Capture
然而,在我使用Android Studio上的CN1在真实设备(API LEVEL 19 aka Kit Kat)上获得的源代码调试应用程序时,我总是遇到java.lang.RuntimeException:无法连接到相机服务.
过了一会儿,我意识到异常是由于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日:
Note: If you are using the camera by invoking an existing camera app, your application does not need to request this permission.
这就是CN1不需要此权限的原因!
感谢您帮助我通过CN1获得权限管理.