3

インストール済みのアプリからユーザーに QR リーダーを選択してもらいたい。これは、Intent.createChooser を使用して行うことができます。QR リーダーで写真を撮ると、QR コードがアプリケーションに返されます。これは私がこれまでに試したことです:

        Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");

            String title = (String) getResources().getText(R.string.chooser_title);

            Intent chooser = Intent.createChooser(intent, title);

            startActivityForResult(chooser, CUSTOM_REQUEST_QR_SCANNER);

スキャナーが正しく起動せず、サンプルの QR コードしか表示されません。私は、intent.setType("text/plain") が間違っているのではないかと感じていますか? QRリーダーとはどのようなタイプですか?または、この方法で QR リーダーを正しく起動するにはどうすればよいですか?

QR アプリが完了すると、ActivityResult もあります。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == CUSTOM_REQUEST_QR_SCANNER) {

        Log.d(TAG, "QR activity complete");
                        //Successful scan
                        if (resultCode == RESULT_OK) {
4

2 に答える 2

3

交換

intent.setType("text/plain");

intent.setType("com.google.zxing.client.android.SCAN");
于 2013-04-05T12:57:28.007 に答える
1

このデモに従って、プロジェクトに「 android-integration.jar 」を含めてください。この .jar ファイルもあります...また、Zxing Library をここからダウンロードすることもできます。アプリで利用可能な QR コード スキャナーを使用します。これを最初に使用する他の方法もあります。R と D によって他の方法を知ることができます。

また

これを使って:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);



        Button btn_scan =(Button) findViewById(R.id.btn_scan);
        btn_scan.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                 IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
                  integrator.initiateScan(IntentIntegrator.QR_CODE_TYPES);

            }
        });
    }

    @Override
      public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
        if (result != null) {
          String contents = result.getContents();
          if (contents != null) {
            showDialog("Found QRcode", result.toString());
          } else {
            showDialog("NO QRcode Found", "The user gave up and pressed Back");
          }
        }
    }

    private void showDialog(String title, CharSequence message) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(title);
        builder.setMessage(message);
        builder.setPositiveButton("OK", null);
        builder.show();
      }

プロジェクトプロパティのJavaビルドパスに同じ.jarファイルを含めます。ここから同じリンクから.jarをダウンロードできます。

于 2013-04-05T12:58:41.917 に答える