2012-01-04 31 views
2

我剛剛使用BarCode掃描儀(ZXing 1.7)製作了應用程序。用戶在手機上不使用條碼掃描器,因此我無法將外部條碼掃描器添加到我的應用程序中。我已經將ZXing的源代碼添加到了我的項目中,但我不知道如何無意地執行它。請幫幫我。如何從Java,Android上的ZXing源碼執行BarCode掃描器?

更新:要不我怎麼能作出這樣的外部條形碼掃描儀會自動與我的應用程序被安裝?

+0

我會盡快改進,但現在我很困惑,請給我一個想法! – user1078760 2012-01-04 17:59:05

回答

2

無法安裝外部條形碼掃描儀進行自動安裝。你可以做的是檢查它是否已安裝,如果沒有顯示對話框詢問用戶是否要安裝它(這將使用戶進入應用程序市場鏈接)。

如果你想避免這種情況,可以直接集成斑馬線庫,但它需要更多的工作。條碼掃描器應用程序是開源的,所以你可以看到如何從那裏做到這一點。

+0

你有沒有做過類似的事情? – user1078760 2012-01-04 18:31:04

+0

我已經和他們提供了一個集成意圖,使用它。閱讀該文件中的文檔,它會告訴你如何完成@JJJ剛纔所說的工作。 – Kaediil 2012-01-04 19:40:54

0

只需使用提供Intent-based integration code。這很容易。它會將用戶發送到市場以下載應用程序。這比嘗試自動安裝它至少要好三個原因。首先,我不認爲用戶希望應用安裝其他應用,並且可能不喜歡它。其次,只有當用戶將設備設置爲允許來自Market以外的第三方應用程序時,它纔可能工作。最後,您將安裝一個潛在的舊版本。

1

如果斑馬線條形碼掃描器安裝在移動,它很容易:

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

@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 

} 

如果它沒有安裝:U可以把這個代碼在試戴catch塊和捕捉異常,U可以做到這一點:

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

所以它重定向應用如果安裝了條碼掃描器,則應用程序會繼續運行一次。

如果妳不想使用在烏拉圭回合應用程序中的其他應用程序,U必須下載斑馬線庫,並嘗試使用從core.jar添加文件類(它使用Apache Ant創建)。按照這個教程做的:http://code.google.com/p/zxing/wiki/GettingStarted