android studio 简单二维码扫描实现
16lz
2021-01-23
要实现扫一扫功能首先要在AndroidManifest.xml中加入一些权限
其次在
**例如:** android:name=".MyApplication"
在build.gradle文件中加入一些权限
apply plugin: 'com.android.application'android { compileSdkVersion 27 defaultConfig { applicationId "com.example.ewm" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } //主要加入这段代码以及下面的两个权限 **configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support') { if (!requested.name.startsWith('multidex')) { details.useVersion '27.1.1' //这里改为你项目使用的版本即可 } } } }**}dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' **implementation 'com.android.support:design:27.1.1'//加入两个依赖 compile 'cn.yipianfengye.android:zxing-library:1.9'** testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'}
首先在布局中创建一个按钮,为点击扫描二维码的按钮
在主Actvity中实现其功能
package com.example.ewm;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;import com.uuzuche.lib_zxing.activity.CaptureActivity;import com.uuzuche.lib_zxing.activity.CodeUtils;public class MainActivity extends Activity { private Button btns; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 btns = findViewById(R.id.btns); //扫描二维码功能 btns.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,CaptureActivity.class); startActivityForResult(intent,1); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); /** * 处理二维码的扫描结果 */ if (requestCode == 1){ //处理扫描结果(在界面上显示) 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); Toast.makeText(this,"解析结果"+result,Toast.LENGTH_LONG).show(); }else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED){ Toast.makeText(this,"解析二维码失败",Toast.LENGTH_LONG).show(); } } } }}
//不要忘记还需要一个工具类
package com.example.ewm;import android.app.Application;import com.uuzuche.lib_zxing.activity.ZXingLibrary;public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); ZXingLibrary.initDisplayOpinion(this); }}
更多相关文章
- Android应用程序获取ROOT权限的方法 (基础篇)
- Android 关闭(删除)FM Transmitter功能的方法
- Android 通过Intent调用系统功能和Action动作和服务广播【大全】
- android二维码xzing使用
- 程序中如何获取Android的Root权限
- Android的权限分类