2015-08-17 85 views
0

我正在開發一個掃描qr代碼並顯示存儲在其中的數據的應用程序。但是,我希望在URL存儲在qr代碼中時打開瀏覽器。如何確定它是正常的文本或URL存儲在二維碼。我試過使用正則表達式或有任何其他方式?我使用zxing庫來掃描qr碼。請幫助我來自qr代碼的URL查找器

回答

0

它很簡單。無論何時您從QR碼獲取數據,只需嘗試如下。對於有效的url,它將返回true,否則返回false。

try { 
     HttpURLConnection con = 
     (HttpURLConnection) url.openConnection(); 
     con.setRequestMethod("HEAD"); 
     return (con.getResponseCode() == HttpURLConnection.HTTP_OK); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
     return false; 
    } 

另見鏈接HttpURLConnection

+0

我希望這一個將正常工作。非常感謝!! –

0

使用嵌入式QR碼閱讀器,像這樣的應用程序[EasyTrack](https://play.google.com/store/apps/details?id=com.shipmatrix.easytrack)我們用這個應用程序做了嵌入QR碼閱讀器,然後嵌入式應用程序利用它自己的閱讀/碼。

+1

其實我不是在尋找一個應用程序..我正在開發一個新的..所以需要的方式.. –

1

首先,你應該在你的設備中的QR讀取器,就像你說的,你使用斑馬線讀者這段代碼將打開的應用程序進行掃描,或者如果用戶不具備應用程序給它一個URL在抓下載它:

try { 

    Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
    intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes 

    startActivityForResult(intent, 0); 

    } catch (Exception e) { 

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

    } 

和掃描後獲得的活動成果,並檢查掃描以這種方式輸出:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {   
super.onActivityResult(requestCode, resultCode, data); 
if (requestCode == 0) { 

    if (resultCode == RESULT_OK) { 
     String contents = data.getStringExtra("SCAN_RESULT"); 
    } 
    if(resultCode == RESULT_CANCELED){ 
     //handle cancel 
    } 
    } 
} 

如果你出把一個URL這個代碼將在設備瀏覽器中打開它:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); 
startActivity(browserIntent); 

不要錯過你的URL 'http://',這會崩潰您的應用程序

快樂編碼...