android studio开发整合资源简单实现android扫一扫功能

开发安卓app过程中需要集成扫码功能,搜索的时候发现了

http://blog.csdn.net/yuzhiqiang_1993/article/details/52805057

这篇博客文章,写的很清楚了,因为我是新手,实现过程中还是出现了一些问题,所以记录下来


一、资源下载

直接从上面链接博主的github里面把整个工程下载下来,地址(https://github.com/yuzhiqiang1993/zxing)顺手给个star吧


主要用到的是上图红框中的zxinglibrary文件夹


二、资源配置

因为我使用android studio进行开发的,一下处理是否试用于eclipse我也没试过。

1.将zxinglibrary文件夹作为module加入你原有的工程中


2.在弹出界面中选择Import Gradle Project→Next


3.选择zxinglibrary文件夹的位置,finish。


4.选择project structure


5.dependencies中点击加号,选择选择刚刚引入的zxinglibrary


6.点击OK

以上,资源配置就完事了。


三、调用功能实现

1.相机权限取得

现在这个时间点开发应该都在6.0以上了,所以相机权限应该是必须的,在你的工程AndroidManifest.xml文件中添加以下代码

2.活动定义,依然在你的AndroidManifest.xml文件中添加以下代码
        
        
        
3.调用例子如下(我实现的是按钮调用)

        // 扫一扫按钮点击事件
        Button  saoyisao = (Button) findViewById(R.id.saoyisao);
        saoyisao.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 取得相机权限
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{Manifest.permission.CAMERA}, PHOTO_REQUEST_SAOYISAO);
                }else{
                    // 权限已经取得的情况下调用
                    // 调用扫一扫
                    Intent intent = new Intent(FirstActivity.this,
                            CaptureActivity.class);
                    startActivityForResult(intent, REQUEST_CODE_SCAN);
                }
            }
        });

    /**
     * 重写申请权限操作返回值的方法
     **/
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case PHOTO_REQUEST_SAOYISAO:
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                    // 权限申请成功,扫一扫
                    Intent intent = new Intent(FirstActivity.this,
                            CaptureActivity.class);
                    startActivityForResult(intent, REQUEST_CODE_SCAN);
                }else{
                    Toast.makeText(this, "无相机调用权限,扫一扫功能无法使用,", Toast.LENGTH_SHORT).show();
                }
        }
    }

    /**
     * 重写取得活动返回值的方法
     **/
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        switch (requestCode){
            // 扫一扫返回值
            case REQUEST_CODE_SCAN:
                if(resultCode == RESULT_OK){
                    String content = intent.getStringExtra(Consants.CODED_CONTENT);
                    Log.d(TAG, "扫一扫返回成功!扫码结果为:"+content);
                }
                break;
            default:
        }
    }

以上代码中的
REQUEST_CODE_SCAN
PHOTO_REQUEST_SAOYISAO
 
  

 
  

是我自己设定的int常量


大概就是这样实现的了,有问题请留言。



你可能感兴趣的:(android开发)