来自qr代码的URL查找程序

时间:2015-08-17 03:26:41

标签: android

我正在开发一个扫描qr代码并显示存储在其中的数据的应用程序。但是,只要URL存储在qr代码中,我就想打开浏览器。如何确定它是qr代码中存储的普通文本还是URL ..我尝试使用正则表达式还是有其他方法吗?我使用zxing库扫描qr代码。请帮帮我

4 个答案:

答案 0 :(得分:1)

首先你的设备应该有一个QR阅读器,正如你所说的那样你使用zxing阅读器,这个代码将打开应用程序进行扫描,或者如果用户没有应用程序给它一个URL,用于在catch中下载它: / p>

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);

不要错过您网址中的'http://',这会导致您的应用崩溃

快乐的编码......

答案 1 :(得分:0)

使用嵌入式QR码阅读器,如此应用程序[EasyTrack](https://play.google.com/store/apps/details?id=com.shipmatrix.easytrack)我们对此应用程序所做的是嵌入式QR码阅读器,然后嵌入式应用程序利用它自己的阅读系统/对QR码采取行动。

答案 2 :(得分: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

答案 3 :(得分:0)

当我扫描我的QR码时,我无法打开多个网站,但是使用以下代码,我只能打开Goog​​le网站:

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