2013-10-31 57 views
0

我想在应用程序扫描条形码时执行一些操作。为此,我需要知道每当我的设备扫描仪扫描条形码。条码包含我想在我的应用程序中使用的字符串。我搜索了很多,尝试使用下面的代码来解决这个问题,但我不知道如果我在正确的轨道上,因为它不工作:如何知道扫描仪是否已在android中扫描条码?

在我的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); 

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

回答

1

从文档:

Intent.ACTION_MEDIA_SCANNER_FINISHED

广播事件:媒体扫描仪已完成扫描目录。 Intent.mData字段包含扫描目录的路径。

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

如果您使用的库兴我敢肯定,你要调用一个activityForResult,然后你就会抓住onActivityResult

+0

我使用,使用相机时,我正在扫描。现在我正在使用带有扫描仪的Motorola ET1。如果一个EditText被聚焦并且我按下了扫描按钮,那么我得到了该EditText中的信息。我希望我的应用程序能够知道扫描仪何时完成扫描,因此我可以对从条形码获得的信息执行一些操作,而无需按任何按钮。有没有什么办法可以告诉应用程序,扫描已完成,因此我可以在不按下按钮的情况下执行操作ö – Piscean

+1

我明白你在做什么,但我的回答是指出你并不明白那是什么意图。它与条形码扫描仪无关。这是关于媒体库文件扫描仪。您可能可以通过在EditText上添加TextChangeListener或EditorActionListener来完成您想要的操作 – Budius