Android中判断是否有前置摄像头、后置摄像头的方法

通常我们进行摄像头操作,如扫描二维码需要判断是否有后置摄像头(Rear camera),比如Nexus 7 一代就没有后置摄像头,这样在尝试使用的时候,我们需要进行判断进行一些提示或者处理。

以下代码为一系列的方法,用来判断是否有前置摄像头(Front Camera),后置摄像头。

复制代码 代码如下:
private static boolean checkCameraFacing(final int facing) {
    if (getSdkVersion() < Build.VERSION_CODES.GINGERBREAD) {
        return false;
    }
    final int cameraCount = Camera.getNumberOfCameras();
    CameraInfo info = new CameraInfo();
    for (int i = 0; i < cameraCount; i++) {
        Camera.getCameraInfo(i, info);
        if (facing == info.facing) {
            return true;
        }
    }
    return false;
}

public static boolean hasBackFacingCamera() {
    final int CAMERA_FACING_BACK = 0;
    return checkCameraFacing(CAMERA_FACING_BACK);
}

public static boolean hasFrontFacingCamera() {
    final int CAMERA_FACING_BACK = 1;
    return checkCameraFacing(CAMERA_FACING_BACK);
}

public static int getSdkVersion() {
    return android.os.Build.VERSION.SDK_INT;
}

注意:由于getNumberOfCameras以及getCameraInfo均为API 9 引入,所以方法只适用于2.3及其以上。

延伸阅读:http://developer.android.com/reference/android/hardware/Camera.html http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html

时间: 2024-08-02 10:00:02

Android中判断是否有前置摄像头、后置摄像头的方法的相关文章

android视频切换到后置摄像头之后本地的图像是正常的但对方显示的接收到的图像是倒立的

问题描述 android视频切换到后置摄像头之后本地的图像是正常的但对方显示的图像是倒立的,是在传输的过程之前就要修改?怎么修改? 解决方案 在cameraHelper中修改下这个方法YUV420spRotate180(yuv_Rotate90,yuv_frame,mwidth,mheight);这是调整视频角度参数的解决方案二:嗯 ,谢谢!之前是没有这个方法的,现在修改下,不过里面的方法看得不太明白,好像用加了这些方法之后没有以前那么的流畅了,有点卡

Android中判断屏幕是否亮屏和是否解锁功能

1.屏幕是否亮屏: PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); //true为打开,false为关闭 boolean ifOpen = powerManager.isScreenOn(); 2.屏幕是否解锁: KeyguardManager mKeyguardManager = (KeyguardManager) context.getSystemServi

Android中判断手机是否联网实例_Android

本文实例讲述了Android中判断手机是否联网的方法,分享给大家供大家参考.具体步骤如下: 首先在AndroidManifest.xml中添加与连接网络相关的权限: 复制代码 代码如下: <uses-permission android:name="android.permission.INTERNET"></uses-permission>  <uses-permission android:name="android.permission.A

Android中判断手机是否联网实例

本文实例讲述了Android中判断手机是否联网的方法,分享给大家供大家参考.具体步骤如下: 首先在AndroidManifest.xml中添加与连接网络相关的权限: 复制代码 代码如下:<uses-permission android:name="android.permission.INTERNET"></uses-permission>  <uses-permission android:name="android.permission.AC

消息称iPad2后置摄像头为100万像素(图)

SDK文档显示iPad 2后置摄像头为100万像素 北京时间1月22日凌晨消息,据美国科技博客9 to 5 Mac报道,据一份最新iOS SDK(开发者工具)文档显示,苹果下一代iPad将采用100万像素的后置摄像头,能够拍摄720P质量的视频. 而前置摄像头分辨率为VGA,与iPhone 4和iPod touch四代相同.iPad 2前置摄像头同样支持FaceTime.照相和摄像功能. 9 to Mac还从iOS SDK中发现了一些iPad 2的图标,从图标上判断,iPad 2的分辨率将比上一

传iPad 2后置摄像头为100万像素

据国外http://www.aliyun.com/zixun/aggregation/31646.html">媒体报道,根据最新的iOS SDK(软件工具开发包)文档显示,iPad 2的后置摄像头为100万像素.这个分辨率与四代iPod Touch 70万像素的后置摄像头分辨率相仿,这意味着iPad 2也可以支持720P视频的拍摄,但二代iPad能否原生播放720P视频仍然是未知数.iPad 2的前置摄像头为VGA分辨率,与iPhone 4和四代iPod Touch相同,拥有摄像.自拍和F

前置++和后置++ 运算的详解及实例代码_java

一般认为前置++是先将变量的值加1,然后使用加1后的值参与运算:而后置++是先使用该值参与运算,然后再将该值加1. 先看第一个例子: package test; public class Plus_Test01 { public static void main(String[] args) { int i = 100; i = i++; System.out.println(i); } } 猜猜结果是什么? 接着看第二个: package test; public class Plus_Tes

Android中使用socket使底层和framework通信的实现方法_Android

一般的native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层 呢?android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和framework自 由通信,具体实现如下: android中使用jni对linux中的socket进行了封装.使用起来十分的方便. 由于android是基于linux的,所以linux的代码会在java之前先执行,所以一般nat

Android中关于百度糯米app关闭网页或窗口的方法(99%人不知)_Android

我们公司做了一款使用百度钱包的移动网页支付进行支付的产品,用户通过百度钱包.百度糯米扫描我们 产品的二维码,选择商品,点击支付将会自动调用百度钱包进行支付,支付成功后返回成功页面,在我们的成功页面有关闭 网页按钮,点击关闭按钮或者返回按钮将会关闭页面. 在百度钱包中使用百度轻应用的BLightApp.closeWindow() 方法可以关闭,但是在百度糯米中,按道理可以使用呀, 但是根本就不行,改成传统的window.close()也不行.当时我们在网上搜索和百度糯米的官网中,都没找到解决方法.