0

既存のアプリを変更しています。このアプリは、Java クラスとパッケージを介して「Zxing のバーコード スキャナー」を使用しました。

私のプロジェクトには、次のパッケージが含まれています。

com.google.zxing com.google.zxing.integration com.google.zxing.integration.android

次のようなコードを含むクラスがあります。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

public class QRdecoderActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // temp = this;

        IntentIntegrator.initiateScan(this);
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch(requestCode) {

            case IntentIntegrator.REQUEST_CODE: {

                if (resultCode != RESULT_CANCELED) {

                    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);

                    if (scanResult != null) {
                        String upc = scanResult.getContents();

                        Toast.makeText(this, "Contents : " + upc, Toast.LENGTH_LONG).show();

                    }

                }
                finish();               

                break;
            }
        }
    }   
}

すべて正常に動作していますが、テスト プロセスを開始すると、「バーコード スキャナー」アプリをインストールする必要があることがわかりました。

そうですよね?。

プロジェクト内でJavaクラスを使用している場合、必要はないと思いました。

アプリがインストールされているかどうかを確認するにはどうすればよいですか? 「Google Play」にアクセスして、ダウンロード用のコードからユーザーに表示するにはどうすればよいですか?

4

1 に答える 1

5

これは以前に議論されており、ZxingのWebサイトで非常によく文書化されています。ソースをアプリに統合できますが、インテントを介してスキャンすることもできます。

投稿した内容から、ソースコードがアプリに統合されているように見えるため、インストールする必要はありません(すべてのクラスが存在する必要があるため)。

バーコードスキャナーアプリのインストールを求めるメッセージが表示された場合は、インテントによるスキャンが使用されているようです。最終結果は、両方のアプローチの組み合わせであり、インテントによるスキャンが使用されている方法です。

私は個人的に、意図を介してスキャンすることを好みます。これはここに文書化されています:http ://code.google.com/p/zxing/wiki/ScanningViaIntent 。

私の推論は、アプリがバーコードスキャナーから独立するようになるということです。新しいバーコード標準または一般的なバグ修正/改善によって引き起こされた更新は、アプリが更新されたソースコードを統合するのを待つ必要がないため、エンドユーザーがすぐに利用できるようになります(Google Playを介した更新として)。また、Zxingに付加価値を付ける予定がある場合は、Zxingのソースのみを使用することをお勧めします。

アプリがインストールされているかどうかを確認するにはどうすればよいですか?「GooglePlay」にアクセスして、ダウンロード用のコードからユーザーに表示するにはどうすればよいですか?

Zxingは、ユーザーがインテントを作成し、バーコードスキャナーアプリがインストールされていない状況を適切に処理するためのクラスを提供します。ユーザーをGooglePlayのアプリに直接移動します。http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android/IntentIntegrator.javaで見つけることができます。

クラスを取得したら、次の電話をかけるだけです。

IntentIntegrator integrator = new IntentIntegrator(yourActivity);
integrator.initiateScan();

次に、アクティビティに追加します

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
  IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
  if (scanResult != null) {
    // handle scan result
  }
  // else continue with any other code you need in the method
  ...
}
于 2012-04-10T19:24:38.027 に答える