我正在尝试构建一个用于学习目的的应用程序。这是一个简单的QR码和条形码扫描器应用程序,具有两个流程:
我通过if语句实现了第一目标
public void handleResult(Result result) {
final String myResult = result.getText();
Log.d("QRCodeScanner", result.getText());
Log.d("QRCodeScanner", result.getBarcodeFormat().toString());
if(Patterns.WEB_URL.matcher(result.getText()).matches()) {
// Open URL
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(result.getText()));
startActivity(browserIntent);
}
}
我现在面临的挑战是我无法编译的目标编号。我当时在考虑使用else语句,并用类似google.com +字符串的形式解析Uri。预期结果是,如果扫描程序返回并且返回的值不是URL模式,请打开浏览器,然后转到google并使用返回值进行搜索。
我希望我能说清楚。这里几乎是新手-尝试学习术语和交流方式。
答案 0 :(得分:0)
请尝试
public void handleResult(Result result) {
final String myResult = result.getText();
Log.d("QRCodeScanner", result.getText());
Log.d("QRCodeScanner", result.getBarcodeFormat().toString());
if(Patterns.WEB_URL.matcher(result.getText()).matches()) {
// Open URL
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(result.getText()));
startActivity(browserIntent);
}
else
{
String scannedResult = result.getText().toString();
String url = "https://www.google.com/search?q="+scannedResult;
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(browserIntent);
}
}
答案 1 :(得分:0)
使用它来满足您的要求。
String query=result.getText();
if(Patterns.WEB_URL.matcher(query).matches()) {
// Open URL
Intent browserIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse(result.getText()));
startActivity(browserIntent);
}else{
//Open url with google query
String escapedQuery = URLEncoder.encode(query, "UTF-8");
Uri uri = Uri.parse("http://www.google.com/#q=" + escapedQuery);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
答案 2 :(得分:0)
只需简单地将此else条件代码放入您的else条件或使用完整代码
public void handleResult(Result result) {
final String myResult = result.getText();
Log.d("QRCodeScanner", result.getText());
Log.d("QRCodeScanner", result.getBarcodeFormat().toString());
if(Patterns.WEB_URL.matcher(result.getText()).matches()) {
// Open URL
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(result.getText()));
startActivity(browserIntent);
}
else{
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, result.getText());
startActivity(intent);
}
}
希望这就是您想要的。