- 导入依赖
compile ‘cn.yipianfengye.android:zxing-library:2.2’//二维码 - 添加权限
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
- 创建一个类续程Application并在清单里调用
并在application里添加:android:requestLegacyExternalStorage=“true”
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
ZXingLibrary.initDisplayOpinion(this);
}
}
- 简单设置UI
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="50dp"
/>
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="扫描"
/>
- 在对应的Activity实现相对应的功能
代码如下:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private TextView _tv;
private Button _btn;
private void assignViews() {
_tv = (TextView) findViewById(R.id.tv);
_btn = (Button) findViewById(R.id.btn);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestPermissions();
assignViews();
_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent,101);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 101){
if(resultCode == RESULT_OK){
String string = data.getExtras().getString(CodeUtils.RESULT_STRING);
_tv.setText(string);
}
}else{
_tv.setText("onActivityResult requestCode else");
}
}
public void requestPermissions(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.VIBRATE,
Manifest.permission.WAKE_LOCK,
},101);
}
}
}