二维码扫描使用很广泛,在这里记录二维码扫描的功能,需要导入第三方的类库。
步骤一:在项目中导入第三方的类库,导入方法:往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); } } }
由于所有打开相机的权限和其他操作都放在第三方类库里面了,所以这里只要调用这个第三方类库里的类就好了