2012-01-04 16 views
2

私はBarCodeスキャナ(ZXing 1.7)を使ってアプリケーションを作成しました。ユーザーは自分の携帯電話でバーコードスキャナを使用しないため、アプリケーションに外部バーコードスキャナを追加できません。私はZXingのソースをプロジェクトに追加しましたが、意図がなくてもどのように実行できるのかわかりません。私を助けてください。Java、Android上のZXingソースからバーコードスキャナを実行するには?

アップデート:または、その外部バーコードスキャナがアプリケーションに自動的にインストールされるようにするにはどうすればよいですか?

+0

私はそれをすぐに改善しますが、今私は混乱しています、私にアイ​​デアを与えてください! – user1078760

答えて

2

外部バーコードスキャナをインストールして自動的にインストールすることはできません。あなたができることは、それがインストールされているかどうかを確認することです、そして、あなたがそれをインストールしたいと尋ねるダイアログを表示しないならば(これはユーザーをアプリマーケットリンクに連れて行きます)。

これを避けたい場合は、ZXingライブラリを直接統合することができますが、それ以上の作業が必要です。バーコードスキャナアプリはオープンソースなので、そこからやる方法を見ることができます。

+0

あなたはすでに何かをsimilatしましたか? – user1078760

+0

私はそれらを持っており、彼らはインテグレーションの意図を提供しています。そのファイルのドキュメントを読んでください。そして、@JJJがちょうど言ったことを正確に行う方法を教えてくれるでしょう。 – Kaediil

0

付属のIntent-based integration codeをそのまま使用してください。それは超簡単。マーケットにユーザーを送り、アプリをダウンロードします。これは、少なくとも3つの理由で自動的にインストールしようとするよりはるかに優れています。まず、私は、ユーザーがアプリが他のアプリをインストールし、おそらくそれを気に入らないと思うとは思わない。 2番目の方法は、ユーザーがマーケット以外のサードパーティのアプリケーションを許可するようにデバイスを設定している場合にのみ有効です。最後に、潜在的に古いバージョンをインストールします。

1

zxingのバーコードスキャナは、モバイル、その非常に簡単にインストールされている場合:そのがインストールされていない場合は

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == 0) { 
      if (resultCode == RESULT_OK) { 
        String contents = 

data.getStringExtra("SCAN_RESULT"); //this is the result 
    } 
else if (resultCode == RESULT_CANCELED) { 

     // Handle cancel 

} 

Intent intent = new Intent(
           "com.google.zxing.client.android.SCAN"); 
         intent.putExtra("SCAN_MODE", "PRODUCT_MODE");//for Qr code, its "QR_CODE_MODE" instead of "PRODUCT_MODE" 
         intent.putExtra("SAVE_HISTORY", false);//this stops saving ur barcode in barcode scanner app's history 
         startActivityForResult(intent, 0); 

OnActivityResultでuがtry-にこのコードを置くことができますブロックをキャッチして例外をキャッチすると、あなたはこれを行うことができます:

Uri marketUri = Uri 
           .parse("market://details?id=com.google.zxing.client.android"); 
         Intent marketIntent = new Intent(Intent.ACTION_VIEW, 
           marketUri); 
         startActivity(marketIntent); 

したがって、アプリケーションをリダイレクトしますアンドロイドマーケットには、バーコードスキャナがインストールされている場合、urアプリは一度動作し続けます。

URアプリで他のアプリを使用したくない場合は、zxingライブラリをダウンロードしてcore.jarファイル(apache antを使用して作成)のクラスを使用する必要があります。このチュートリアルに従ってください:http://code.google.com/p/zxing/wiki/GettingStarted

関連する問題