初学 Android,请教下 Camera 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Features
V2EX    Android

初学 Android,请教下 Camera 的问题

  •  
  •   Features 2021-12-16 08:43:50 +08:00 13187 次点击
    这是一个创建于 1446 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.我在 AOSP 上看 Camera 应用的源码,发现没有 AndroidManifest.xml 这个文件

    2.我使用以下代码尝试打开 Camera ,没有请求任何权限,AndroidManifest 都没写,居然成功打开了,也没有闪退
    机型是 HW mate20 ,是啥原因呢?


    ```
    if(v == btn){
    //tke photo and return result
    Intent intent = new Intent();
    intent.setAction("android.media.action.IMAGE_CAPTURE");
    intent.addCategory(Intent.CATEGORY_DEFAULT);

    startActivityForResult(intent,11);
    }
    ```
    8 条回复    2021-12-16 17:31:00 +08:00
    gtanyin
        1
    gtanyin  
       2021-12-16 08:47:01 +08:00   2
    因为你这是跳转了系统页面,请求拍照。而不是自己打开摄像头。由于你无法控制用摄像头做什么,只能被动接收返回的照片,所以不用权限。
    windplume
        2
    windplume  
       2021-12-16 08:47:05 +08:00   1
    你这个是调用其它的相机程序,当然不需要权限啊
    Mav
        3
    Mav  
       2021-12-16 09:37:24 +08:00
    理解成在桌面点开“相机”。
    SakuraOjosama
        4
    SakuraOjosama  
       2021-12-16 09:56:41 +08:00
    AOSP 源码下的相机不是 Camera ,路径是 packages\apps\Camera2 ,当然部分高通定制机可能是 packages\apps\SnapdragonCamera ,或者一部分 MTK 定制机可能是 vendor\mediatek\proprietary\packages\apps\Camera2 ,华为的话,如果是鸿蒙系统,还没有研究过
    SakuraOjosama
        5
    SakuraOjosama  
       2021-12-16 09:59:40 +08:00
    你所写的就相当于你启动了相机这个 APP ,而不是通过接口调用去控制相机
    接口调用的话,给出几个文档:
    https://developer.android.com/training/camerax
    https://developer.android.com/training/camera2
    Camera1 代虽然简单,但也接近废弃,就不给了,camera2 用起来很复杂,推荐 camerax
    unco020511
        6
    unco020511  
       2021-12-16 10:09:04 +08:00
    官方文档-评估应用是否需要声明权限 :https://developer.android.com/training/permissions/evaluating?hl=zh-cn

    评估应用是否需要声明权限
    在您的应用中声明权限之前,请考虑您是否需要这样做。如果应用声明权限,那么每当用户尝试使用需要运行时权限的应用功能时,应便不得不中断用户的操作,请求相应权限。然后,用户必须做出决定。如果用户不能理解您的应用为何请求特定权限,可能就会拒绝授予该权限,甚至卸载您的应用。

    想想是否有其他已安装的应用能够代您的应用执行相应功能。如果有的话,您应使用 intent 将任务委托给其他应用。这样您就不必声明所需的权限,因为其他应用会声明该权限。

    声明权限的替代方案
    本部分将介绍您的应用可在不声明任何权限的情况下实现的几个用例。


    拍摄照片
    用户可能会在您的应用中使用预安装的系统相机应用来拍摄照片。

    在这种情况下,请勿声明 CAMERA 权限,而是改为调用 ACTION_IMAGE_CAPTURE intent 操作。
    Features
        7
    Features  
    OP
       2021-12-16 10:33:26 +08:00
    @Mav @SakuraOjosama @gtanyin @unco020511 @windplume
    非常感谢你们的回复,学习到很多
    SuperLino
        8
    SuperLino  
       2021-12-16 17:31:00 +08:00
    虽然上面大佬已经回答好了,但安卓佬还是想水一条评论
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3841 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 01:00 PVG 09:00 LAX 17:00 JFK 20:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86