使用安卓实现一个二维码扫描功能(基于Android Studio)-程序员宅基地

技术标签: java  移动开发  

  二维码扫描使用很广泛,在这里记录二维码扫描的功能,需要导入第三方的类库。

 

步骤一:在项目中导入第三方的类库,导入方法:往Android Studio中导入第三方类库文件这篇博客中有详细记录

 

步骤二:定义一个xml界面布局:一个按钮用于启动二维码扫描功能,一个TextView用于显示从二维码中获得的数据

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">



    <Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="二维码扫描"
        />


    <TextView
        android:id="@+id/te"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="123"
        />


</LinearLayout>

 

步骤三: 在MainActivity.java中调用第三方中的类库里的类

public class MainActivity extends AppCompatActivity {
    Button btn;
    TextView te;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        te = (TextView) findViewById(R.id.te);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA)
                        != PackageManager.PERMISSION_GRANTED) {
                    //申请WRITE_EXTERNAL_STORAGE权限
                    ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA},
                            1);}//这一块红色的是开启手机里的相机权限,安卓6.0以后的系统需要,否则会报错
                Intent intent = new Intent(MainActivity.this, CaptureActivity.class);//黄色是第三方类库里面的类
                startActivityForResult(intent,0);
            }
        });
    }

//    这个方法是用来获取从另一个界面传回的值的,有不明白这个方法的作用和Intent类的使用的可以看另外一篇博客安卓的组件载体Intent
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==RESULT_OK){
            String s = data.getStringExtra("result");//这个绿色的result是在第三方类库里面定义的key
            te.setText(s);
        }
    }
}

 

 

犹豫所有打开相机的权限和其他操作都放在第三方类库里面了,所以这里只要调用这个第三方类库里的类就好了

 

转载于:https://www.cnblogs.com/lyd447113735/p/8143136.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/alex_wen2014/article/details/101961991

智能推荐

计算机视觉迎来GPT时刻!UC伯克利三巨头祭出首个纯CV大模型!-程序员宅基地

文章浏览阅读282次。点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【视觉和Transformer】微信交流群扫码加入CVer知识星球,可以最快学习到最新顶会顶刊上的论文idea和CV从入门到精通资料,以及最前沿项目和应用!发论文,强烈推荐!在CVer微信公众号后台回复:LVM,即可下载论文pdf和代码链接!快学起来!转载自:机器之心仅靠视觉(像素)模型能走多远?UC 伯克利、约..._三巨头视觉大模型

qcc514x-qcc304x调试笔记-PIO相关操作_qcc304x 注册中断-程序员宅基地

文章浏览阅读720次,点赞2次,收藏5次。相关PIO接口#define PIOS_PER_BANK 32U#define PioCommonPioBank(_pio) ((_pio) / PIOS_PER_BANK)#define PioCommonPioMask(_pio) (1UL << ((_pio) % PIOS_PER_BANK))uint32 PioSetDir32Bank(uint16 bank, uint32 mask, uint32 dir);uint32 PioSet32Bank(uint16_qcc304x 注册中断

Pangu-Agent-程序员宅基地

文章浏览阅读380次,点赞7次,收藏7次。然而,在 Direct 中,即使没有明确要求,LLM 也会生成中间步骤,因为互联网上类似的小学水平问题就是这样呈现的,而这些问题很可能就包含在这些 LLM 的训练集中。因此,LLM 在这项任务中的表现会受到很大影响,特别是在 Reflect 等方法中,提示中还会包含额外的信息。同样值得注意的是,不同的方法在某些 LLM 中比在其他 LLM 中效果更好,例如 React 在 OpenChat-3.2 中的平均表现比 FS 差,而 React 和 FS 在 GPT-3.5 中的平均收益表现类似。whaosoft

wait_event_interruptible() 和 wake_up()的使用_wait_event_interruptible函数没有返回-程序员宅基地

文章浏览阅读571次。http://www.newsmth.net/nForum/#!article/KernelTech/20731 1. 关于 wait_event_interruptible() 和 wake_up()的使用 读一下wait_event_interruptible()的源码,不难发现这个函数先将 当前进程的状态设置成TASK_INTERRUPTIBLE,然后调用schedu_wait_event_interruptible函数没有返回

python自动化框架pycharm_Selenium+Python+Pycharm进行自动化-程序员宅基地

文章浏览阅读749次。最近研究新的自动化测试方法,QTP已经用的比较熟练,待开发新的方法,这里做个记录和大家共勉。1、首先肯定是配置环境了,一步一步来吧,先下载需要的工具:下载一个python的环境,我这里用的Python3.4,一会我上传上来,大家可以直接下载。最好用3.4以及以上的版本,这样可以不用pip单独安装什么的,可以联网直接安装selenium了。安装完Python后可以在线进行selenium安装了,首先..._pycharm webdriver.ie

2021可信云大会-程序员宅基地

文章浏览阅读2.5k次。为了进一步促进云计算创新发展,建立云计算信任体系,规范云计算行业,促进市场发展,提升产业技术和服务水平。由中国信息通信研究院主办,中国通信标准化协会云计算标准与开源推进委员会、混合云产业推进联盟、云原生产业联盟、云服务经营自律委员会、网络风险与保险创新实验室支持的“2021可信云大会”将于2021年7月27-28日在北京国际会议中心举行。围绕行业发展趋势、落地应用、新兴技术、企业数字化上云等热门议题展开观点碰撞。此外,大会现场亦将重磅公布“可信云行业服务最佳实践”“可信云技术服务最佳实践”最终名单,同时_2021可信云大会

随便推点

【转】在ubuntu12.04中安装wine和sourceinsight-程序员宅基地

文章浏览阅读46次。PS:用wine其实还可以在Linux下运行其他Windows软件,比如BeyondCompare,过程是一样的原文网址:http://www.2cto.com/os/201408/322370.html1.安装winesudo apt-get install wine2.安装source insight将source insight安装的可执行文件复制到ubuntu...

Javascript初级教程(适合新手)_js入门教程-程序员宅基地

文章浏览阅读1.7k次。1)定义变量的三要素 :var 变量名 = 初始化值;2)定义所有的变量都是var,而且var可以省略不写!3)js中,变量可以重复定义的,后面的值将前面的值覆盖!在js中定义函数的格式function 函数名(参数名1,参数名2,....){完成的函数的逻辑return 结果;//返回结果调用函数:赋值调用:var 变量名= 函数名(实际参数1,实际参数2..)以下为简单的函数实例var m = prompt("请输入一个数")_js入门教程

GTC 2024 火线评论:DPU 重构文件存储访问_dpu分布式存储-程序员宅基地

文章浏览阅读874次,点赞11次,收藏9次。在多样化的 GPU 存储类型的利用上,不管是块存储的 NVMe 卷作为节点内的高速缓存,还是共享文件存储作为 CPU/GPU 内存的全局缓存存储,最终通过基于对象存储的数据湖来统一治理,这些存储类型的需求和定位都跟 XSKY 的产品定位和路线图高度符合。对于国内领先的分布式存储厂商来说,我们同样认为,不仅是 Nvidia BlueField 系列产品可以提供这样的方式,这样的需求应该可以在普遍的 DPU 产品中实现并被利用,有效的提高 DPU 在存储协议上的多样化支持,并带来共享文件存储的安全性所需。_dpu分布式存储

flex两列布局,左边固定(可折叠),右边自适应_实现左侧展开折叠右侧自适应-程序员宅基地

文章浏览阅读9.7k次,点赞2次,收藏8次。需求:左边导航栏固定宽200px,并且导航栏可折叠隐藏,右边自适应,填充剩余的宽度. html:&amp;lt;div class=&quot;body&quot;&amp;gt; &amp;lt;div class=&quot;sidebar&quot;&amp;gt; &amp;lt;div class=&quot;bar&quot; id='bar'&amp;g_实现左侧展开折叠右侧自适应

电感计算公式_y形接线三相pmsm的线电感与相电感换算公式-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏18次。加载其电感量按下式计算: 阻抗(ohm) = 2 * 3.14159 * F(工作频率) * 电感量(mH),设定需用 360ohm 阻抗,因此: 电感量(mH) = 阻抗 (ohm) ÷ (2*3.14159) ÷ F (工作频率) = 360 ÷ (2*3.14159) ÷ 7.06 = 8.116mH 据此_y形接线三相pmsm的线电感与相电感换算公式

hive修改inputformat-程序员宅基地

文章浏览阅读2.3k次。TINPUTFORMAT “com.hadoop.mapred.DeprecatedLzoTextInputFormat”OUTPUTFORMAT “org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat”;ALTER TABLE foo PARTITION (pt=’2013-06-04′) SET FILEFORMATINPUTFORMAT “com.hadoop.mapred.DeprecatedLzoTextInputFormat”O_hive表修改 inputformat