打开系统摄像机怎么设置默认打开的是前置摄像头?

qq_29773521 2015-07-13 09:49:22
如题?
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
...全文
5567 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
MadFrogs 2017-11-14
  • 打赏
  • 举报
回复
cameraId前1后0,默认打开后置: api1 camera中的open打开: public static Camera open(int cameraId) { return new Camera(cameraId); } api2: public void openCamera(String cameraId,CameraDevice.StateCallback callback, Handler handler){ ....... } 第一个参数表示cameraid 表示前后置,第二个回调,底层打开与否,给生层一个反馈,后一个表示在当前线程,还是其他。
itzhu2015 2017-11-13
  • 打赏
  • 举报
回复
调用系统的相机打开就不知道了
itzhu2015 2017-11-13
  • 打赏
  • 举报
回复
https://github.com/googlesamples/android-Camera2Basic 搜索这段代码 /** * Sets up member variables related to camera. * * @param width The width of available size for camera preview * @param height The height of available size for camera preview */ @SuppressWarnings("SuspiciousNameCombination") private void setUpCameraOutputs(int width, int height) { Activity activity = getActivity(); CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); try { for (String cameraId : manager.getCameraIdList()) { CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); // We don't use a front facing camera in this sample. Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING); if (facing != null && facing == CameraCharacteristics.LENS_FACING_BACK) {//修改这里,不设置后置,使用前置摄像头 continue; }
赛 文 2017-10-27
  • 打赏
  • 举报
回复
打开系统的 是打开后置摄像头
所谓的所谓 2017-10-27
  • 打赏
  • 举报
回复
这真是一个头疼的问题
冰点k 2017-10-26
  • 打赏
  • 举报
回复
楼主解决了吗
dashan618 2017-07-11
  • 打赏
  • 举报
回复
你好楼主. 我也遇到和你一样的需求, 需要调系统自带的前置摄像头. 能指点一下吗? 谢谢!!!!
M_O_ 2016-09-09
  • 打赏
  • 举报
回复
可以查看系统自带摄像机的源码,是否提供了相应的intent参数显示前置摄像头
KeithIlwld 2016-09-09
  • 打赏
  • 举报
回复
楼主 你的问题是怎么解决的啊 是用的第二种方法麽 有没有通过intent启动前置摄像头的解决方案啊!? 求解啊。。。
qq_29773521 2015-07-13
  • 打赏
  • 举报
回复
引用 7 楼 jiao2530 的回复:
http://blog.csdn.net/hfahe/article/details/6595459
这个方法不行
qq_29773521 2015-07-13
  • 打赏
  • 举报
回复
引用 6 楼 u011987034 的回复:
楼主看下这个是不是你所需要的 http://blog.csdn.net/ly0309/article/details/6977196
试过了,实现不了,你也可以试下
jiao2530 2015-07-13
  • 打赏
  • 举报
回复
http://blog.csdn.net/hfahe/article/details/6595459
天明之时 2015-07-13
  • 打赏
  • 举报
回复
楼主看下这个是不是你所需要的 http://blog.csdn.net/ly0309/article/details/6977196
月满轩妮诗 2015-07-13
  • 打赏
  • 举报
回复
木有
qq_29773521 2015-07-13
  • 打赏
  • 举报
回复
引用 3 楼 XiaToxic 的回复:
引用 2 楼 qq_29773521 的回复:
额...我要调的是系统摄像机,还有默认打开前置摄像头 [quote=引用 1 楼 XiaToxic 的回复:] 这种方法没用吗?好像是可以的啊。然后还有一种是用camera.open打开前后摄像头
http://www.cnblogs.com/mengdd/archive/2013/03/31/2991932.html看看这个[/quote] 额..没有介绍调前置摄像头啊?
月满轩妮诗 2015-07-13
  • 打赏
  • 举报
回复
引用 2 楼 qq_29773521 的回复:
额...我要调的是系统摄像机,还有默认打开前置摄像头
引用 1 楼 XiaToxic 的回复:
这种方法没用吗?好像是可以的啊。然后还有一种是用camera.open打开前后摄像头
http://www.cnblogs.com/mengdd/archive/2013/03/31/2991932.html看看这个
qq_29773521 2015-07-13
  • 打赏
  • 举报
回复
额...我要调的是系统摄像机,还有默认打开前置摄像头
引用 1 楼 XiaToxic 的回复:
这种方法没用吗?好像是可以的啊。然后还有一种是用camera.open打开前后摄像头
月满轩妮诗 2015-07-13
  • 打赏
  • 举报
回复
这种方法没用吗?好像是可以的啊。然后还有一种是用camera.open打开前后摄像头
wen_ov5640_r16_20161114_1744后插入UVC可以打开ov5640和USB摄像头.7z 20161114全志R16配置为前ov5640后UVC的双摄像头 1、 Z:\home\wwt\uvc_r16_project\android\device\softwinner\astar-evb20\configs\camera.cfg 修改: number_of_camera = 1 为: number_of_camera = 2 如果不改这里,兄弟,你在camera这个APP里面是绝对看不到前后摄像头的切换选项的!!!!^_ 修改ov5640的分辨率: used_preview_size = 1 key_support_preview_size = 640x480 key_default_preview_size = 640x480 used_picture_size = 1 key_support_picture_size = 640x480 key_default_picture_size = 640x480 为(根据你驱动里面的摄像头的寄存器配置分辨率而实际修改): used_preview_size = 1 key_support_preview_size = 2592x1936, 2048x1536, 1600x1200, 1280x960, 1280x960, 1024x768, 1920x1080 ,1280x720, 800x600, 640x480 key_default_preview_size = 640x480 used_picture_size = 1 key_support_picture_size = 2592x1936, 2048x1536, 1600x1200, 1280x960, 1280x960, 1024x768, 1920x1080 ,1280x720, 800x600, 640x480 key_default_picture_size = 640x480 2、 Z:\home\wwt\uvc_r16_project\android\device\softwinner\astar-evb20\astar_evb20.mk #include device/softwinner/polaris-common/prebuild/google/products/gms_minimal.mk 注释掉这里干掉Google Play。可以不改。 3、这里讲UVC配置为模块了,请注意UVC所需要的模块的加载顺序。 Z:\home\wwt\uvc_r16_project\android\device\softwinner\astar-evb20\init.sun8i.rc 默认为: #csi module insmod /system/vendor/modules/videobuf-core.ko insmod /system/vendor/modules/videobuf-dma-contig.ko insmod /system/vendor/modules/cam_detect.ko # insmod /system/vendor/modules/actuator.ko # insmod /system/vendor/modules/ad5820_act.ko insmod /system/vendor/modules/cci.ko insmod /system/vendor/modules/vfe_os.ko insmod /system/vendor/modules/vfe_subdev.ko insmod /system/vendor/modules/gc0307.ko # insmod /system/vendor/modules/ov2035.ko insmod /system/vendor/modules/vfe_v4l2.ko 修改为: #csi module # /dev/video0 ov5640 insmod /system/vendor/modules/videobuf-core.ko insmod /system/vendor/modules/videobuf-dma-contig.ko #insmod /system/vendor/modules/cam_detect.ko insmod /system/vendor/modules/cci.ko insmod /system/vendor/modules/vfe_os.ko insmod /system/vendor/modules/vfe_subdev.ko insmod /system/vendor/modules/ov5640.ko insmod /system/vendor/modules/vfe_v4l2.ko # /dev/video1 uvc insmod /system/vendor/modules/videobuf2-core.ko insmod /system/vendor/modules/videobuf2-memops.ko insmod /system/vendor/modules/videobuf2-vmalloc.ko insmod /system/vendor/modules/uvcvideo.ko 4、 Z:\home\wwt\uvc_r16_project\lichee\tools\pack\chips\sun8iw5p1\configs\default\env.cfg 推荐修改: bootdelay=0 为: bootdelay=3 5、不用修改: Z:\home\wwt\uvc_r16_project\lichee\tools\pack\chips\sun8iw5p1\configs\evb-20\sys_config.fex ;-------------------------------------------------------------------------------- ;vip (video input port) configuration ;vip_used: 0:disable 1:enable ;vip_mode: 0:sample one interface to one buffer 1:sample two interface to one buffer ;vip_dev_qty: The quantity of devices linked to capture bus ; ;vip_define_sensor_list: If you want use sensor detect function, please set vip_define_sensor_list = 1, and ; verify that file /system/etc/hawkview/sensor_list_cfg.ini is properly configured! ; ;vip_dev(x)_pos: sensor position, "rear" or "front", if vip_define_sensor_list = 1,vip_dev(x)_pos must be configured! ; ;vip_dev(x)_isp_used 0:not use isp 1:use isp ;vip_dev(x)_fmt: 0:yuv 1:bayer raw rgb ;vip_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby ;vip_dev(x)_vflip: flip in vertical direction 0:disable 1:enable ;vip_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable ;vip_dev(x)_iovdd: camera module io power handle string, pmu power supply ;vip_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply ;vip_dev(x)_avdd: camera module analog power handle string, pmu power supply ;vip_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply ;vip_dev(x)_dvdd: camera module core power handle string, pmu power supply ;vip_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply ;vip_dev(x)_afvdd: camera module vcm power handle string, pmu power supply ;vip_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply ;x indicates the index of the devices which are linked to the same capture bus ;fill voltage in uV, e.g. iovdd = 2.8V, vip_devx_iovdd_vol = 2800000 ;fill handle string as below: ;axp22_eldo3 ;axp22_dldo4 ;axp22_eldo2 ;fill handle string "" when not using any pmu power supply ;-------------------------------------------------------------------------------- [csi0] vip_used = 1 vip_mode = 0 vip_dev_qty = 1 vip_define_sensor_list = 0 vip_csi_pck = port:PE00 vip_csi_mck = port:PE01 vip_csi_hsync = port:PE02 vip_csi_vsync = port:PE03 vip_csi_d0 = port:PE04 vip_csi_d1 = port:PE05 vip_csi_d2 = port:PE06 vip_csi_d3 = port:PE07 vip_csi_d4 = port:PE08 vip_csi_d5 = port:PE09 vip_csi_d6 = port:PE10 vip_csi_d7 = port:PE11 vip_csi_sck = port:PE12 vip_csi_sda = port:PE13 vip_dev0_mname = "ov5640" vip_dev0_pos = "rear" vip_dev0_lane = 1 vip_dev0_twi_id = 2 vip_dev0_twi_addr = 0x78 vip_dev0_isp_used = 0 vip_dev0_fmt = 0 vip_dev0_stby_mode = 1 vip_dev0_vflip = 0 vip_dev0_hflip = 0 vip_dev0_iovdd = "axp22_dldo3" vip_dev0_iovdd_vol = 2800000 vip_dev0_avdd = "" vip_dev0_avdd_vol = 2800000 vip_dev0_dvdd = "" vip_dev0_dvdd_vol = 1800000 vip_dev0_afvdd = "" vip_dev0_afvdd_vol = 2800000 vip_dev0_power_en = vip_dev0_reset = port:PE14 vip_dev0_pwdn = port:PE15 vip_dev0_flash_en = vip_dev0_flash_mode = vip_dev0_af_pwdn = [usbc1] usb_used = 1 usb_drv_vbus_gpio = port:PD12 usb_restrict_gpio = usb_host_init_state = 1 usb_restric_flag = 0 usb_regulator_io = "nocare" usb_regulator_vol = 0 usb_not_suspend = 0 编译内核之后, rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ ./build.sh config Welcome to mkscript setup progress All available chips: 0. sun8iw5p1 Choice: 0 All available platforms: 0. android 1. dragonboard 2. linux 3. tina Choice: 0 All available kernel: 0. linux-3.4 Choice: 0 All available boards: 0. bell-one 1. evb 2. evb-20 3. evb-rtl8723bs 4. sc3813r Choice: 2 rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ ./build.sh 配置USB摄像头为模块(也可以选择*直接编译进内核): rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ cd linux-3.4/ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee/linux-3.4$ make ARCH=arm menuconfig Device Drivers ---> Multimedia support ---> [*] Video capture adapters ---> 修改: [ ] V4L USB devices ---> 为: [*] V4L USB devices ---> 修改: USB Video Class (UVC) (NEW) 为 USB Video Class (UVC) rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ cd linux-3.4/ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee/linux-3.4$ cd .. rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ ./build.sh rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ cd ../android/ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ source build/envsetup.sh including device/softwinner/bellone-sc3813r/vendorsetup.sh including device/softwinner/astar-evb20/vendorsetup.sh including device/softwinner/r16-bell-one/vendorsetup.sh including device/softwinner/astar-evb/vendorsetup.sh including device/softwinner/polaris-common/vendorsetup.sh including device/lge/mako/vendorsetup.sh including device/lge/hammerhead/vendorsetup.sh including device/samsung/manta/vendorsetup.sh including device/generic/x86/vendorsetup.sh including device/generic/mips/vendorsetup.sh including device/generic/armv7-a-neon/vendorsetup.sh including device/asus/tilapia/vendorsetup.sh including device/asus/deb/vendorsetup.sh including device/asus/grouper/vendorsetup.sh including device/asus/flo/vendorsetup.sh including sdk/bash_completion/adb.bash rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ lunch You're building on Linux Lunch menu... pick a combo: 1. aosp_arm-eng 2. aosp_x86-eng 3. aosp_mips-eng 4. vbox_x86-eng 5. bellone_sc3813r-eng 6. astar_evb20-eng 7. r16_bell_one-eng 8. astar_evb-eng 9. aosp_mako-userdebug 10. aosp_hammerhead-userdebug 11. aosp_manta-userdebug 12. mini_x86-userdebug 13. mini_mips-userdebug 14. mini_armv7a_neon-userdebug 15. aosp_tilapia-userdebug 16. aosp_deb-userdebug 17. aosp_grouper-userdebug 18. aosp_flo-userdebug Which would you like? [aosp_arm-eng] 6 ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.4.2 TARGET_PRODUCT=astar_evb20 TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=cortex-a7 HOST_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty HOST_BUILD_TYPE=release BUILD_ID=KVT49L OUT_DIR=out ============================================ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ extract-bsp rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ make -j12 rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ pack 编译好系统之后,刷机之后请注意先让开发板的Android4.4启动完成之后再插入USB摄像头。 全志R16的android4.4启动之后再插入USB摄像头。 这个配置就可以设置 ov5640为后置摄像头:/dev/video0 UVC为前置摄像头:/dev/video1 如果接上USB摄像头再启动,android是被: ov5640为前置摄像头,有设备节点/dev/video1,打开失败。 UVC为后置摄像头:/dev/video0 原因未知。 参考资料: http://blog.csdn.net/u010257920/article/details/49925807 A20 linux(dragonboard)同时使用Parallel CSI Camera及UVC http://blog.csdn.net/guoyihoney/article/details/46966603 A20平台增加camera http://blog.csdn.net/it_fish_man/article/details/17395469 Android usb camera设备添加 http://blog.csdn.net/zmnqazqaz/article/details/49535531 RK3288 uvc摄像头调试 http://blog.csdn.net/edsam49/article/details/8886543 USB Camera在android车机上应用前景及初试小结
/** * 此处是切换摄像镜头的按键单击事件 */ selectcamera=(Button)findViewById(R.id.main_camera);//获取到切换摄像头的按钮 btnOnclick(selectcamera); selectcamera.setOnClickListener(new OnClickListener() { @SuppressLint("NewApi") @Override public void onClick(View arg0) { System.out.println("正在进入切换摄像头模块"); //切换前后摄像头 int cameraCount = 0; Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); cameraCount = Camera.getNumberOfCameras();//得到摄像头的个数 System.out.println("现在摄像头的编号是:"+cameraPosition); for(int i = 0; i < cameraCount; i++ ) { Camera.getCameraInfo(i, cameraInfo);//得到每一个摄像头的信息 if(cameraPosition == 1) { //现在是后置,变更为前置 // if(cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {//代表摄像头的方位,CAMERA_FACING_FRONT前置 CAMERA_FACING_BACK后置 System.out.println("我们现在正在切换到后置摄像头内部"); cameraPosition = 0; camera.stopPreview();//停掉原来摄像头的预览 camera.release();//释放资源 camera = null;//取消原来摄像头 camera = Camera.open(cameraPosition);//打开当前选中的摄像头 surfaceView.getHolder().addCallback(new SurfaceCallback());//为SurfaceView的句柄添加一个回调函数 try { camera.setPreviewDisplay(holder);//通过surfaceview显示取景画面 } catch (IOException e) { e.printStackTrace(); } camera.startPreview();//开始预览 break; // } } else { //现在是前置, 变更为后置 if(cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {//代表摄像头的方位,CAMERA_FACING_FRONT前置 CAMERA_FACING_BACK后置 cameraPosition = 1; System.out.println("我们现在正在切换到前置摄像头"); camera.stopPreview();//停掉原来摄像头的预览 camera.release();//释放资源 camera = null;//取消原来摄像头 camera = Camera.open(cameraPosition);//打开当前选中的摄像头 surfaceView.getHolder().addCallback(new SurfaceCallback());//为SurfaceView的句柄添加一个回调函数 try { camera.setPreviewDisplay(holder);//通过surfaceview显示取景画面 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } camera.startPreview();//开始预览 break; } } } /** * 闪光灯状态的改变,默认是自动闪光的,可分为强制打开和强制关闭,已经恢复自动闪光等 */ flash=(Button)findViewById(R.id.main_flash); flash.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { System.out.println("闪光灯现在的状态="+state); //当前是自动闪光,改变成强制 Camera.Parameters parameters = camera.getParameters(); if(state==0){ //关闭闪光灯 parameters.setFlashMode(Parameters.FLASH_MODE_OFF); flash.setBackgroundResource(R.drawable.flashclose); state=1; } //当前是强制关闭,改变成强制打开 else if(state==1){ //打开闪光灯 parameters.setFlashMode(Parameters.FLASH_MODE_TORCH); flash.setBackgroundResource(R.drawable.flashop); state=2; } //当前是强制打开,改变成自动闪光 else if(state==2){ //闪光灯自动 parameters.setFlashMode(Parameters.FLASH_MODE_ON); flash.setBackgroundResource(R.drawable.flashauto); camera.setParameters(parameters); state=0; } camera.setParameters(parameters); } });

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧