使用安卓實現一個二維碼掃描功能(基於Android Studio)


  二維碼掃描使用很廣泛,在這里記錄二維碼掃描的功能,需要導入第三方的類庫。

 

步驟一:在項目中導入第三方的類庫,導入方法:往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);
        }
    }
}

 

 

由於所有打開相機的權限和其他操作都放在第三方類庫里面了,所以這里只要調用這個第三方類庫里的類就好了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM