【问题标题】:How to know if a scanner has done scanning barcode in android?如何知道扫描仪是否已在 android 中完成了条码扫描?
【发布时间】:2013-10-31 10:23:20
【问题描述】:

我想在我的应用扫描条形码时执行一些操作。为此,每当我的设备扫描仪扫描条形码时,我都需要知道。条形码包含我想在我的应用程序中使用的字符串。我进行了很多搜索并尝试使用以下代码解决问题,但我不确定我是否走在正确的轨道上,因为它不起作用:

在我的 onCreate 方法中,我正在注册一个广播接收器:

 IntentFilter filter = new IntentFilter();
 filter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
 filter.addDataScheme("file");

 receiver = new BroadcastReceiver() {
 @Override
 public void onReceive(Context context, Intent intent) {
      String action = intent.getAction();
      System.out.println("intent action:"+action);
      System.out.println("intent recieved");
     }
 };

 getActivity().registerReceiver(receiver, filter);

但我从来没有收到任何东西。任何想法为什么或任何其他解决方案来解决这个问题。提前致谢。

【问题讨论】:

    标签: java android android-intent broadcastreceiver intentfilter


    【解决方案1】:

    来自文档:

    Intent.ACTION_MEDIA_SCANNER_FINISHED

    广播操作:媒体扫描仪已完成对目录的扫描。扫描目录的路径包含在 Intent.mData 字段中。

    这与条形码扫描无关。您必须查看您使用哪个库/方法来扫描条形码。

    如果您使用的是 XIng 库,我确定您必须调用一个 activityForResult,然后您就可以捕获 onActivityResult

    【讨论】:

    • 我在使用相机扫描时使用它。现在我正在使用带有扫描仪的摩托罗拉 ET1。如果一个 EditText 被聚焦并且我按下扫描按钮,我会在该 EditText 中获得信息。我希望我的应用程序知道扫描仪何时完成扫描,这样我就可以对从条形码获得的信息执行一些操作,而无需按任何按钮。有什么方法可以告诉应用程序扫描完成,这样我就可以在不按按钮的情况下执行操作ö
    • 我明白你在做什么,但我的回答是指出你不明白 Intent 做了什么。它与条形码扫描仪无关。这是关于媒体库文件扫描仪的。您可能可以通过在 EditText 上添加 TextChangeListener 或 EditorActionListener 来做您想做的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2020-12-03
    • 2012-05-21
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多