栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android studio 实现手机扫描二维码功能

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android studio 实现手机扫描二维码功能

 安卓手机版本在6.0以后需要动态获取相机权限

1.获取相机权限


  
  

2.添加依赖

implementation 'cn.yipianfengye.android:zxing-library:2.2'

3.activity_main.xml




  

4.MainActivity.java

package com.example.a86156.saomiao;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;
import com.uuzuche.lib_zxing.activity.ZXingLibrary;
public class MainActivity extends AppCompatActivity {
  Button btn;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //隐藏系统默认的标题
    ActionBar actionBar = getSupportActionBar();
    if(actionBar!=null){
      actionBar.hide();
    }
    //初始化相机权限
    ZXingLibrary.initDisplayOpinion(this);
    btn = findViewById(R.id.btn);
    btn.setonClickListener(new View.onClickListener() {
      @Override
      public void onClick(View v) {
 //先判断手机版本是否在6.0以上,如果在6.0以上则需要动态申请权限
 if (Build.VERSION.SDK_INT > 22) {
   if (ContextCompat.checkSelfPermission(MainActivity.this,
android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
     //先判断有没有权限 ,没有就在这里进行权限的申请
     ActivityCompat.requestPermissions(MainActivity.this,
  new String[]{android.Manifest.permission.CAMERA}, 1);
   } else {
     //说明已经获取到摄像头权限了 想干嘛干嘛
     Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
     startActivityForResult(intent, 1);
   }
 } else {
   //这个说明系统版本在6.0之下,不需要动态获取权限。
   Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
   startActivityForResult(intent, 1);
 }
      }
    });
  }
  //获取手机相机权限
  @Override
  public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == 1) {
      if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
 Intent intent = new Intent(this, CaptureActivity.class);
 startActivityForResult(intent, 1);
      } else {
 Toast.makeText(MainActivity.this, "请打开相机权限", Toast.LENGTH_SHORT).show();
      }
    }
  }
  //处理扫描结果
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
      if (data != null) {
 Bundle bundle = data.getExtras();
 if (bundle == null) {
   return;
 }
 if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
   //获取到扫描的结果
   String result = bundle.getString(CodeUtils.RESULT_STRING);
   Log.d("res:",result);
 }
      }
    }
  }
}

总结

以上所述是小编给大家介绍的Android studio 实现手机扫描二维码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/154730.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号