在我的应用程序中,我想使用相机,如果设备有一个。是否有任何设备运行 android不有相机?通过将以下内容包含到我的清单中:
<uses-feature android:name="android.hardware.camera" android:required="false"/>
那么它基本上是说“如果存在,我会使用相机,但不需要一个来运行应用程序。”
在尝试使用 Camera 类之前,如何检查设备上是否存在相机?
这是我使用的
import android.content.pm.PackageManager;
PackageManager pm = context.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
}
各种其他有趣的东西来测试也是可用的-指南针,位置可用,是否有前置摄像头:http://developer.android.com/reference/android/content/pm/PackageManager.html
要了解您的设备上有多少个摄像头可用,您可以调用:
import android.hardware.Camera;
int numCameras = Camera.getNumberOfCameras();
if (numCameras > 0) {
hasCamera = true;
}
Camera.getNumberOfCameras () 是静态的,所以它不需要实际连接到相机。这从 API 9 起工作。
编辑:
使用较新的 camera2 API,您还可以调用CameraManager.getCameraIdList(),它提供了所有有效相机 ID 的列表,而不仅仅是计数。
你应该用这个在你的设备中找到相机
public static boolean isCameraAvailable(Context context) {
return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY);
}
Camera.getNumberOfCameras () 已弃用。您可以使用:
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public int getNumberOfCameras() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
return ((CameraManager) getSystemService(Context.CAMERA_SERVICE)).getCameraIdList().length;
} catch (CameraAccessException e) {
Log.e("", "", e);
}
}
return Camera.getNumberOfCameras();
}
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(35条)