【发布时间】:2011-08-17 12:41:49
【问题描述】:
我很困惑在哪里添加
使用功能
清单中的标签。 我在我的应用程序中使用相机。我添加了权限,但我很困惑在哪里添加功能以使用前置摄像头。你能帮忙吗?
【问题讨论】:
标签: android android-manifest android-camera android-permissions
我很困惑在哪里添加
使用功能
清单中的标签。 我在我的应用程序中使用相机。我添加了权限,但我很困惑在哪里添加功能以使用前置摄像头。你能帮忙吗?
【问题讨论】:
标签: android android-manifest android-camera android-permissions
在<manifest>标签下添加这个,像这样:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lalllala">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.camera" />
<application android:icon="@drawable/icon" android:label="lalla" android:debuggable="true">
</application>
</manifest>
【讨论】:
<uses-feature...>的例子,那就更好了:)
<uses-feature> - 声明应用程序使用的单个硬件或软件功能。
声明的目的是通知任何外部实体您的应用程序所依赖的硬件和软件功能集。该元素提供了一个 required 属性,可让您指定您的应用程序是否需要并且在没有声明的功能的情况下无法运行,或者它是否更喜欢拥有该功能但可以在没有它的情况下运行。由于功能支持可能因 Android 设备而异,因此该元素在让应用程序描述其使用的设备变量功能方面发挥着重要作用。 read for more
以下是访问Device Front Camera
public Camera openFrontFacingCamera() {
int cameraCount = 0;
Camera ffCam = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
// Find the total number of cameras available
cameraCount = Camera.getNumberOfCameras();
// Find the ID of the CAMERA_FACING_FRONT & open it
for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
Camera.getCameraInfo(camIdx, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
ffCam = Camera.open(camIdx);
} catch (RuntimeException e) {
Log.e(TAG, "Camera failed to open: " + e.getLocalizedMessage());
}
}
}
return ffCam;
}
需要以下权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
更多信息请阅读Google android developer API docCamera,Camera.CameraInfo
【讨论】:
why to use <uses-feature> tag in manifest by Google 'android_developer' site。我在这里复制了文字,只是为了有一个简短的解释,如果人们想阅读更多内容,请点击它的页面链接。
<uses-feature> 唯一目的是通知任何外部实体您的应用程序所依赖的硬件和软件功能集。 简而言之,我们可以说 uses-feature 元素描述了您的应用程序使用的设备变量功能。 其中,<uses-permission> 请求必须授予应用程序才能使用的权限正确操作。 安装应用程序时,用户授予权限。不允许合并这两者。
在清单标签下添加:
<!-- Request the camera permission -->
<uses-permission
android:name="android.permission.CAMERA" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
【讨论】:
这样写标签顺序
<manifest>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application>
</application>
</manifest>
【讨论】: