专栏首页技术小黑屋检查Android是否具有摄像头

检查Android是否具有摄像头

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

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

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

Others

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JvmMultifile 注解在 Kotlin 中的应用

    接触过Kotlin之后,我们会利用其扩展方法特性创建很多便捷的方法来实现更好更快的编码。比如我们对于RxJava进行一些简单的扩展方法实现。

    技术小黑屋
  • 顶部带进度条的Webview

    写这篇文章,做份备忘,简单滴展示一个带进度条的Webview示例,进度条位于Webview上面.

    技术小黑屋
  • 自定义支持读取XML属性的View

    在Android中,添加一个View很简单,简单的你可以简简单单地使用xml和一部分简单的java代码就可以搞定。 比如这样

    技术小黑屋
  • C++经典算法题-合并排序法

    之前所介绍的排序法都是在同一个阵列中的排序,考虑今日有两笔或两笔以上的资料,它可能是不同阵列中的资料,或是不同档案中的资料,如何为它们进行排序?

    cwl_java
  • 系统集成模式介绍

    在当今的mashup-driven(混搭驱动)的世界中,使用集成来提取、转换和利用数据是大多数软件工程师的首要任务。理解经过验证的集成模式很重要,它可以帮助简化...

    程序你好
  • 你的消息队列如何保证消息不丢失,且只被消费一次,这篇就教会你

    昨天我们将消息队列这个组件加入到了我们的商城系统里,并且通过秒杀这个实际的案例进行了实际演练(秒杀系统每秒上万次下单请求,我们该怎么去设计),知道了它对高并发写...

    架构师修炼
  • 使用消息中间件时,如何保证消息仅仅被消费一次?

    原文链接:https://www.toutiao.com/i6803224493616529927/

  • 使用消息中间件时,如何保证消息仅仅被消费一次?

    消息中间件使用广泛,常用来削峰填谷、系统解耦、异步处理。异步处理可能是使用的最多的场景了,比如现在的技术博客网站,都采用积分制,用户发表一篇文章后,可以获取想要...

    平头哥的技术博文
  • 这就是iPhone11?嗯…可能还会运行加密货币

    话说前段时间,有个叫@BenGeskin的谍照大人,曝光了一张iPhone 11 和 iPhone 11 Max 的渲染图,后置的三摄非常抢眼。

    区块链大本营
  • LwwtCode 173:二叉搜索树迭代器 Binary Search Tree Iterator

    Implement an iterator over a binary search tree (BST). Your iterator will be ini...

    爱写bug

扫码关注云+社区

领取腾讯云代金券