首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Intent.createChooser安卓二维码阅读器

Intent.createChooser安卓二维码阅读器
EN

Stack Overflow用户
提问于 2013-04-05 20:09:25
回答 2查看 2.5K关注 0票数 3

我希望用户从他安装的应用程序中选择二维码阅读器。这可以通过使用Intent.createChooser来完成。当使用二维码阅读器拍摄照片时,应该将二维码发送回我的应用程序。这就是我到目前为止所尝试的:

代码语言:javascript
运行
复制
        Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");

            String title = (String) getResources().getText(R.string.chooser_title);

            Intent chooser = Intent.createChooser(intent, title);

            startActivityForResult(chooser, CUSTOM_REQUEST_QR_SCANNER);

扫描仪不能正确启动,它只显示样本二维码。我感觉intent.setType(“文本/纯文本”)可能是错误的?QR阅读器是什么类型的?或者如何正确启动QR阅读器?

当QR应用程序完成时,我也有一个ActivityResult:

代码语言:javascript
运行
复制
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == CUSTOM_REQUEST_QR_SCANNER) {

        Log.d(TAG, "QR activity complete");
                        //Successful scan
                        if (resultCode == RESULT_OK) {
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-05 20:57:28

替换

代码语言:javascript
运行
复制
intent.setType("text/plain");

使用

代码语言:javascript
运行
复制
intent.setType("com.google.zxing.client.android.SCAN");
票数 3
EN

Stack Overflow用户

发布于 2013-04-05 20:58:42

遵循这个Demo并在你的项目中包含"android-integration.jar“,它也有这个.jar文件……你也可以从Here下载Zxing库,它将使用你应用程序中可用的二维码扫描器。还有其他的方法,先使用这个,你也可以通过R和D来了解其他方法。

使用以下命令:

代码语言:javascript
运行
复制
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);



        Button btn_scan =(Button) findViewById(R.id.btn_scan);
        btn_scan.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                 IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
                  integrator.initiateScan(IntentIntegrator.QR_CODE_TYPES);

            }
        });
    }

    @Override
      public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
        if (result != null) {
          String contents = result.getContents();
          if (contents != null) {
            showDialog("Found QRcode", result.toString());
          } else {
            showDialog("NO QRcode Found", "The user gave up and pressed Back");
          }
        }
    }

    private void showDialog(String title, CharSequence message) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(title);
        builder.setMessage(message);
        builder.setPositiveButton("OK", null);
        builder.show();
      }

并在项目属性java构建路径中包括相同的.jar文件。您可以从here的同一链接下载.jar。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15833596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档