QR码生成的链接应通过浏览器进行定向

时间:2017-01-05 04:17:57

标签: java android qr-code

我已经创建了一个QR扫描器android应用程序。我需要的是,如果我扫描QR码并且它是否生成链接,那么应用程序应该通过浏览器自动打开该链接。 任何帮助将不胜感激。谢谢!!

3 个答案:

答案 0 :(得分:0)

当您收到生成QR码的回调时

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

在浏览器中打开该链接

至于缺少的“http://”我会做这样的事情:

if (!url.startsWith("http://") && !url.startsWith("https://"))
url = "http://" + url;

验证网址

URLUtil.isValidUrl(url) 

答案 1 :(得分:0)

如果您已经实施了“ QR扫描程序”然后检查,则必须有一个回调方法,您可以从“扫描程序”接收返回的文本。
在该回调方法中,触发打开浏览器的意图,使用如下所示的特定URL:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url)); // here ulr is the one that you get from scanner
startActivity(i);

我希望它有所帮助。

答案 2 :(得分:0)

下面是我的QR扫描器代码:

public class VehicleReaderActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler  {

private ZXingScannerView mScannerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTitle("SCAN QR CODE");
    mScannerView = new ZXingScannerView(this);
    setContentView(mScannerView);
    mScannerView.setResultHandler(this);
    mScannerView.startCamera();
}

@Override
protected void onPause() {
    super.onPause();
    mScannerView.stopCamera();
}

@Override
public void handleResult(Result result) {
    // Do anything with result here
    Log.w("handleResult", result.getText());

    // Now direct the generated link to the browser //
    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://" + result.getText()));
    startActivity(browserIntent);

    //Resume scanning
    //mScannerView.resumeCameraPreview(this);
}
}