精华内容
下载资源
问答
  • 不能用的情况:(1)没有给app摄像头权限;(2)手机电量不足;(3)摄像头损坏等; 我们在开发过程中,也容易出现这样的问题。在我们排除是代码问题的情况下,就是硬件问题。那么怎么检测是否有权限呢? 二、...

    一、开发背景

            1.使用场景:(1)拍照;(2)扫一扫;(3)镜子;

            2.不能用的情况:(1)没有给app摄像头权限;(2)手机电量不足;(3)摄像头损坏等;

            我们在开发过程中,也容易出现这样的问题。在我们排除是代码问题的情况下,就是硬件问题。那么怎么检测是否有权限呢?

    二、代码

    /**
     * Created by laizhen on 2017/6/23.
     */
    
    public class CameraCanUseUtils {
    
        /**
         * 测试当前摄像头能否被使用
         *
         * @return
         */
        public static boolean isCameraCanUse() {
            boolean canUse = true;
            Camera mCamera = null;
            try {
                mCamera = Camera.open(0);
                mCamera.setDisplayOrientation(90);
            } catch (Exception e) {
                canUse = false;
            }
            if (canUse) {
                mCamera.release();
                mCamera = null;
            }
            //Timber.v("isCameraCanuse="+canUse);
            return canUse;
        }
    }

    //使用

    //调用相机权限判定
    if (CameraCanUseUtils.isCameraCanUse()) {
        Log.i(TAG, "相机");
    } else {
        ToastUtils.showTextToast(mContext, "没相机权限,请到应用程序权限管理开启权限");
        //跳转至app设置
        getAppDetailSettingIntent();
        return;
    }

    //设置相机

    /**
     * 相机权限设置
     * 跳转至设置页面
     */
    private void getAppDetailSettingIntent() {
        Intent localIntent = new Intent();
        if (Build.VERSION.SDK_INT >= 9) {
            localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
            localIntent.setData(Uri.fromParts("package", mContext.getPackageName(), null));
        } else if (Build.VERSION.SDK_INT <= 8) {
            localIntent.setAction(Intent.ACTION_VIEW);
            localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
            localIntent.putExtra("com.android.settings.ApplicationPkgName", mContext.getPackageName());
        }
        startActivity(localIntent);
    }

    注意:发现三星手机是没有办法跳转至设置页面的,只能跳转至权限状态页面。

     

    展开全文
  • Android手机摄像头编程入门

    千次阅读 2011-01-10 23:04:00
    实例:窈窈照相机,功能很简单...1、创建一个项目 Lesson36_Camera ,主程序文件为 MainActivity.java2、AndroidManifest.xml 中设置屏幕为横屏,并且声明摄像头和存储卡的使用权限,具体代码如下: view sourceprint?

    实例:窈窈照相机,功能很简单,就是点击程序弹出照相预览界面,点击相机按钮完成照相功能,所照相片会存储在手机存储卡根目录。

    1、创建一个项目 Lesson36_Camera ,主程序文件为 MainActivity.java

    2、AndroidManifest.xml 中设置屏幕为横屏,并且声明摄像头和存储卡的使用权限,具体代码如下:

     

    01 <?xml version="1.0" encoding="utf-8"?>
    02 <MANIFEST android:versionname="1.0" android:versioncode="1" xmlns:android="http://schemas.android.com/apk/res/android" package="basic.android.lesson36">
    03     <APPLICATION android:icon="@drawable/icon" android:label="@string/app_name">
    04         <ACTIVITY android:label="@string/app_name" android:configchanges="orientation|keyboardHidden|keyboard" android:screenorientation="landscape" android:name=".MainActivity">
    05             <INTENT -filter>
    06                 <ACTION android:name="android.intent.action.MAIN" />
    07                 <CATEGORY android:name="android.intent.category.LAUNCHER" />
    08             </INTENT>
    09         </ACTIVITY>
    10   
    11     </APPLICATION>
    12     <USES android:minsdkversion="8" -sdk />
    13     <USES android:name="android.permission.CAMERA" -permission></USES>
    14     <USES android:name="android.permission.WRITE_EXTERNAL_STORAGE" -permission></USES>
    15     <USES android:name="android.hardware.camera" -feature />
    16     <USES android:name="android.hardware.camera.autofocus" -feature />
    17 </MANIFEST>

     

    3、本例中不需要布局文件main.xml,因为本例中的UI组建都是动态添加上去的。

    4、最后MainActivity.java的代码如下:

     

    001 package basic.android.lesson36;
    002   
    003 import java.io.BufferedOutputStream;
    004 import java.io.File;
    005 import java.io.FileOutputStream;
    006 import java.io.IOException;
    007 import java.util.Calendar;
    008 import java.util.Locale;
    009   
    010 import android.app.Activity;
    011 import android.content.Context;
    012 import android.graphics.Bitmap;
    013 import android.graphics.BitmapFactory;
    014 import android.graphics.PixelFormat;
    015 import android.hardware.Camera;
    016 import android.os.Bundle;
    017 import android.text.format.DateFormat;
    018 import android.util.Log;
    019 import android.view.KeyEvent;
    020 import android.view.SurfaceHolder;
    021 import android.view.SurfaceView;
    022 import android.view.Window;
    023 import android.view.WindowManager;
    024 import android.widget.FrameLayout;
    025 import android.widget.TextView;
    026 import android.widget.Toast;
    027   
    028 public class MainActivity extends Activity {
    029   
    030     private CameraView cv;
    031     //准备一个相机对象
    032     private Camera mCamera = null;
    033     //准备一个Bitmap对象
    034     private Bitmap mBitmap = null;  
    035   
    036     //准备一个保存图片的PictureCallback对象
    037     public Camera.PictureCallback pictureCallback = new Camera.PictureCallback() {
    038   
    039         public void onPictureTaken(byte[] data, Camera camera) {
    040             Log.i("yao","onPictureTaken");
    041             Toast.makeText(getApplicationContext(), "正在保存……", Toast.LENGTH_LONG).show();
    042             //用BitmapFactory.decodeByteArray()方法可以把相机传回的裸数据转换成Bitmap对象
    043             mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
    044             //接下来的工作就是把Bitmap保存成一个存储卡中的文件
    045             File file = new File("/sdcard/YY"+ new DateFormat().format("yyyyMMdd_hhmmss", Calendar.getInstance(Locale.CHINA)) + ".jpg");
    046             try {
    047                 file.createNewFile();
    048                 BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file));
    049                 mBitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
    050                 os.flush();
    051                 os.close();
    052                 Toast.makeText(getApplicationContext(), "图片保存完毕,在存储卡的根目录", Toast.LENGTH_LONG).show();
    053             } catch (IOException e) {
    054                 e.printStackTrace();
    055             }
    056         }
    057   
    058     };
    059   
    060     //Activity的创建方法
    061     @Override
    062     public void onCreate(Bundle savedInstanceState) {
    063         super.onCreate(savedInstanceState);
    064   
    065         //窗口去掉标题
    066         requestWindowFeature(Window.FEATURE_NO_TITLE);
    067         //窗口设置为全屏
    068         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    069         //设置窗口为半透明
    070         getWindow().setFormat(PixelFormat.TRANSLUCENT);
    071   
    072         //提供一个帧布局
    073         FrameLayout  fl = new FrameLayout(this);      
    074   
    075         //创建一个照相预览用的SurfaceView子类,并放在帧布局的底层
    076         cv = new CameraView(this);
    077         fl.addView(cv);
    078   
    079         //创建一个文本框添加在帧布局中,我们可以看到,文字自动出现在了SurfaceView的前面,由此你可以在预览窗口做出各种特殊效果
    080         TextView tv = new TextView(this);
    081         tv.setText("请按/"相机/"按钮拍摄");
    082         fl.addView(tv);
    083   
    084         //设置Activity的根内容视图
    085         setContentView(fl);
    086   
    087     }
    088   
    089     //相机按键按下的事件处理方法
    090     public boolean onKeyDown(int keyCode, KeyEvent event) {
    091         Log.i("yao","MainActivity.onKeyDown");
    092         if (keyCode == KeyEvent.KEYCODE_CAMERA) {
    093             if (mCamera != null) {
    094                 Log.i("yao","mCamera.takePicture");
    095                 //当按下相机按钮时,执行相机对象的takePicture()方法,该方法有三个回调对象做入参,不需要的时候可以设null
    096                 mCamera.takePicture(null, null, pictureCallback);
    097             }
    098         }
    099         return cv.onKeyDown(keyCode, event);
    100     }
    101   
    102     // 照相视图
    103     class CameraView extends SurfaceView {
    104   
    105         private SurfaceHolder holder = null;
    106   
    107         //构造函数
    108         public CameraView(Context context) {
    109             super(context);
    110             Log.i("yao","CameraView");
    111   
    112             // 操作surface的holder
    113             holder = this.getHolder();
    114             // 创建SurfaceHolder.Callback对象
    115             holder.addCallback(new SurfaceHolder.Callback() {
    116   
    117                 @Override
    118                 public void surfaceDestroyed(SurfaceHolder holder) {
    119                     // 停止预览
    120                     mCamera.stopPreview();
    121                     // 释放相机资源并置空
    122                     mCamera.release();
    123                     mCamera = null;
    124                 }
    125   
    126                 @Override
    127                 public void surfaceCreated(SurfaceHolder holder) {
    128                     //当预览视图创建的时候开启相机
    129                     mCamera = Camera.open();
    130                     try {
    131                         //设置预览
    132                         mCamera.setPreviewDisplay(holder);
    133                     } catch (IOException e) {
    134                         // 释放相机资源并置空
    135                         mCamera.release();
    136                         mCamera = null;
    137                     }
    138   
    139                 }
    140   
    141                 //当surface视图数据发生变化时,处理预览信息
    142                 @Override
    143                 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    144   
    145                     //获得相机参数对象
    146                     Camera.Parameters parameters = mCamera.getParameters();
    147                     //设置格式
    148                     parameters.setPictureFormat(PixelFormat.JPEG);
    149                     //设置预览大小,这里我的测试机是Milsstone所以设置的是854x480
    150                     parameters.setPreviewSize(854, 480);
    151                     //设置自动对焦
    152                     parameters.setFocusMode("auto");
    153                     //设置图片保存时的分辨率大小
    154                     parameters.setPictureSize(2592, 1456);
    155                     //给相机对象设置刚才设定的参数
    156                     mCamera.setParameters(parameters);
    157                     //开始预览
    158                     mCamera.startPreview();
    159                 }
    160             });
    161             // 设置Push缓冲类型,说明surface数据由其他来源提供,而不是用自己的Canvas来绘图,在这里是由摄像头来提供数据
    162             holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    163         }
    164   
    165     }
    166   
    167 }

     

    5、连接Milestone,编译并运行程序:悲剧的是,截图只能看到黑黑的一片,无法截取到摄像头传输过来SurfaceView信息,而在真机中是能看到预览效果的。

    device

    还是上一张照好的图片给大家吧,(用了好多年的小黑……)

    YY20101208_030141

    展开全文
  • Android实现调用摄像头

    2021-01-05 09:18:07
    应用场景: 在Android开发过程中,有时需要调用手机自身设备的功能,本文侧重摄像头拍照功能的调用。...--摄像头权限 --> <!--存储权限 SD卡读写权限 --> <uses-permission android:name=and
  • 电脑摄像头打不开

    千次阅读 2020-05-11 23:03:08
    给出四个方法,挨个试试总有一个能用检查设备管理器检查设置检查应用权限手机做暂时的摄像头 检查设备管理器 1.打开设备管理器 可以直接用搜索打开,也可以在 此电脑→ 属性→ 设备管理器 2.找到摄像头 仔细找找...

    今天又是给室友解决问题的一天,我已经扛起了我们宿舍解决电脑疑难杂症的任务。
    在这里插入图片描述
    相机打不开我觉得大部分就是两种原因

    • 你没开权限
    • 相机驱动有问题

    我室友的电脑提示“我们找不到你的相机”,我觉得显然属于后者。

    检查设备管理器

    1.打开设备管理器
    可以直接用搜索打开,也可以在 此电脑属性设备管理器
    在这里插入图片描述
    在这里插入图片描述
    2.找到摄像头
    仔细找找,不同的电脑名字可能稍微有差异

    • 有的电脑叫图形设备
      在这里插入图片描述
    • 有的电脑是叫照相机
      在这里插入图片描述

    如果你能找到摄像头驱动,那直接在上边,右键→禁用设备,禁用之后再启用设备。一般就可以用了。
    如果你找不到摄像头驱动,那就是你不小心把这个驱动给卸载啦。重新下驱动就行了。

    3.重新装驱动
    对于普通用户,建议直接下载个驱动精灵之类的软件帮你安装,我装系统用的是360驱动大师。360驱动大师下载地址:https://dm.weishi.360.cn/home.html?from=homepage
    下载安装之后,它会自动扫描你的驱动。
    如果你知道哪个是摄像头驱动,你可以只安装摄像头驱动,如果你不知道,那就跟我室友一样,点击一键安装,直接把你缺的驱动和需要更新的驱动全都安装了就行。
    安完重启,你电脑摄像头应该就好了。
    在这里插入图片描述

    检查设置

    如果你的驱动没问题。但是你的摄像头还是不能用,那就看一下是不是设置的问题。
    在这里插入图片描述
    打开设置隐私相机
    除了我列的这两个,可以再往下翻着看看,是不是该给的权限都给了。给了权限之后应该就可以用啦。
    在这里插入图片描述

    检查应用权限

    上边两个都没问题的话,那可能是你的应用权限有问题,这就需要你自己去探索那个应用怎么设置了。我这里以chrome浏览器为例说一下。
    如果你chrome不能用摄像头,那你打开chrome的设置,找到隐私设置和安全性网站设置
    在这里插入图片描述
    进入之后下拉就能找到摄像头,然后进行相应的权限设置就可以啦。
    在这里插入图片描述

    用手机做暂时的摄像头

    如果上边的方法都不能用,那你可以暂时用手机做摄像头。
    教程:怎么用手机当电脑摄像头?安卓苹果都可以,巨简单的N种方案任君挑选


    今天也是拯救室友的一天。

    展开全文
  • 今天手机刚更新ios10,xcode更新了8.0,但一运行只要是调用相机,相册,麦克风,摄像头等就崩溃,原因很简单:只要在info.plist里添加 NSCameraUsageDescription ----- 相机 NSContactsUsageDescription ----- ...

    今天手机刚更新ios10,xcode更新了8.0,但一运行只要是调用相机,相册,麦克风,摄像头等就崩溃,原因很简单:只要在info.plist里添加


    <key>
    NSCameraUsageDescription ----- 相机
    
    NSContactsUsageDescription ----- 摄像头
    
    NSMicrophoneUsageDescription ----- 麦克风
    
    NSPhotoLibraryUsageDescription ----- 相册
    
    
    
     <string>
    是否打开相机...
    
    是否打开摄像头...
    
    是否打开麦克风...
    
    是否打开相册...
    
    这个string的值可以随便写
    
    
    
    

    展开全文
  • 文章目录在acvitity中动态权限申请在fragment中动态申请权限检测摄像头是否可用检测麦克风是否可用动态权限异常引导用户手动授权当前申请权限结果展示跳转到系统权限设置手动设置权限不同手机系统权限设置详情页适配...
  • 在iOS7以后要打开手机摄像头或者相册的话都需要权限,在iOS9中更是更新了相册相关api的调用 ...按钮和事件设置好以后,我们来引入要用到的库,判断摄像头权限,需要引入AVFoundation.framework,搜索并进行添加
  • 在iOS7以后要打开手机摄像头或者相册的话都需要权限,在...按钮和事件设置好以后,我们来引入要用到的库,判断摄像头权限,需要引入AVFoundation.framework,搜索并进行添加 在ViewController中 import AVFoundati...
  • 移动眼 无线视频传输和手机视频监控业务 1、手机端支持EDGE/3G网络制式; 2、手机端支持iphone/android/symbian等主流手机平台; 3、标准H.264编解码,符合3GPP移动视频压缩标准;... 分层设置权限
  • 原因是系统没有给应用使用摄像头权限,我到楼下设置对方手机,选择“设置”-》找到应用“devicescan”,授权使用摄像头,恢复正常 转载于:https://www.cnblogs.com/strongdady/p/9108987.html...
  • 如何通过目标追踪功能制作一个手机摄像头实时跟踪小车,该设计运用OpenCV的图像处理APP,手机APP通过摄像头实时跟踪设定的颜色目标,并且通过手机蓝牙将目标坐标位置和大小等信息输出,配合蓝牙串口模块和我写的配套...
  • 规范化的 喊单操作,不同级别客户权限设置,支持注册、登陆、QQ在线客服、投票、可用YY视频转播,也可使用自己的摄像头直播。 新增功能: 游客发言,30秒才能发一次。 有彩条,会员等级分了7个。 讲师榜单,给老师...
  • Android+Camera+拍照

    2015-01-30 06:19:08
    预览时可能会发现预览窗口中的景象与实际方向不符(转了90度),原因是摄像头默认使用水平朝向,通过这个方法来实现,依据手机朝向,设置摄像头方向 public static void setCameraDisplayOrientation(Activity ...
  • 我有这样一个需求,点击一个功能,需要用户授权手机摄像头(等)权限,如果用户拒绝了,那么我们需要引导用户重新开启权限。 此报错的位置是在,当我们发现用户拒绝权限时,引导用户打开权限时报的错 需知 打开...
  • 智能手机用作网络摄像头设备。 我们可以通过安装 IP 网络摄像头应用程序来... (确保您阅读了相应的权限并了解其中的任何安全性问题) 打开应用程序,设置所需的分辨率(会影响速度!) 滚动到底部并点击“启动服务器”
  • 直播APP源码功能详解

    千次阅读 2019-06-17 01:28:56
    可以设置只有签约主播才能开启手机直播,也可以设置所有注册用户都有权限 开启手机直播的时候可以选择手机前后手机摄像头设备,也可以在直播过程中进行切换 3.玩家用户观看手机直播 玩家可以通过手机APP观看主播的...
  • 本文主要是Apress.Pro.Android.Media.Dec.2010书籍的读书笔记,加上自己的一些理解 要创建一个自定义的摄像机应用,就需要调用...摄像头权限 为了能够调用Camera类捕捉画面,我们需要在AndroidManifest.xml文件中指
  • 在AndroidManifest.xml文件中添加摄像头权限 故障排除 文本识别API需要下载少量文件。 下载将在安装时启动,但可能需要一些时间。 直到应用程式无法使用Vision API。 在这种情况下,请稍等片刻,然后重试。 截屏
  • 可以自由设置储值卡、折扣卡、计次卡等多种会员卡类型,可兼容IC卡、磁卡、条码卡、ID感应卡等各种卡,会员消费可自动积分、自动升级,可以使用摄像头采集会员照片,手机发送短信等,让你和会员之间实现信息沟通,...
  • Html5Qrcode功能强大的API集,可用于构建UI,而无需担心相机设置,处理权限,读取代码等问题。 支持在设备上扫描本地文件是新增功能,并且对不支持智能手机中的内联网络摄像机访问的Web浏览器很有帮助。 注意:这...
  • 安卓webview嵌入我们的h5页面,调用摄像头的时候,打开的却是文件管理器,后期发现该问题是客户自己的权限设置好,后期就能打开摄像头啦 IOS对接正常,当客户使用安卓手机调用的时候,就一直停留在验证页面不动 ...
  • 0.手机正常开机,打开手机USB调试模式(设置-应用程序-开发人员选项-调试),用数据线连接电脑.打开软件点“开始”,按提示操作. 1.左键点击摄像头手机信息快照,右键点击清空信息.左键双击退出程序. 2.按住Ctrl键左键...
  • html 调 用 摄 像 头

    2018-08-29 14:52:52
    应该有很多人知道,我们的手机里面有...布局很简单,就是设置一个“拍照”按钮的监听器,调用摄像头video,然后显示出来画像。(需要用户权限) 首先,我们要允许网页宽度自动调整,我们在网页头添加viewport标签:
  • 笔试时间一个半小时,总共三道题,在牛客网上进行,建议提前十五分钟点开链接,需要开启摄像头、屏幕共享权限,MAC还需要到设置里打开,重启浏览器,第一次操作还是提前准备。还需要手机扫码,进入笔试小程序界面,...
  • 平凡考试系统V2018

    2017-11-20 12:39:20
    +增加 针对需要人工批改的试卷设置批改权限时添加查询功能,同时只显示需要人工批改的试卷信息。 +增加 可以关闭针对学习任务的后续注册人员有效的功能。 +增加 绩效考核评分时添加综合评价功能,可直接输入汉字。...
  • 用户管理:添加管理员、设置管理员权限、查看本站用广信息、编辑站内用户资料、查看本站、用户上传视频,管理站内用户(拉黑、推荐、账户管理、禁用头像等)、用户推荐 文章管理:文章编辑、文章发布、文章顶置、管理...

空空如也

空空如也

1 2 3 4 5
收藏数 94
精华内容 37
关键字:

手机设置摄像头权限