2012-04-10 8 views
0

私は既存のアプリを変更しています。このアプリはJavaクラスとパッケージを使って "Zxingのバーコードスキャナ"を使用していました。"Zxing's barcode scanner"をAndroidで使用する

私のプロジェクトでは、それらのパッケージが含まれています

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

をcom.google.zxing私はこのようないくつかのコードを持つクラスを持っています:

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」にアクセスして、ダウンロードするコードからユーザーに表示するにはどうすればよいですか?

答えて

5

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

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

バーコードスキャナアプリのインストールを促すメッセージが表示された場合、インテントによるスキャンが使用されているように見えます。最終的な結果は、インテントによるスキャンが使用されている方法である場合、両方のアプローチのカクテルがあることです。

私は個人的には、インテントによるスキャンが好きです。これはここに文書化されています:http://code.google.com/p/zxing/wiki/ScanningViaIntent

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

アプリがインストールされているかどうかを確認するにはどうすればよいですか?どうすれば 「Google Play」にアクセスして、自分のコードからダウンロードすることができますか?

Zxingは、ユーザーが目的を果たし、Barcode Scannerアプリがインストールされていない状況を適切に処理するクラスを提供します。それは、ユーザーがGoogleプレイのアプリに直接連れて行くことになります。 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 
    ... 
} 
+0

を追加するには、どうもありがとうございました。私は時代遅れのIntentIntegratorバージョンまたはカスタムメイドバージョンを持っていました。 リンクからコードをコピーしても問題ありません。 本当にありがとうございます –

関連する問題