为什么Zebra InputScannerplugin停止对发送的广播做出反应



我正在Zebra MC3300上创建一个Android APK-此设备已预装DataWedge,在我的应用中,我使用Zebra InputScannerPlugin来禁用/根据活动启用扫描仪。我有Zebra指南禁用/启用方法的代码,看起来像:

    static String scannerInputPlugin = "com.symbol.datawedge.api.ACTION";
    static String extraData = "com.symbol.datawedge.api.SCANNER_INPUT_PLUGIN";
public static void enableScanner(Activity activity){
        try {            
            if(!scannerEnabled) {
                Intent i = new Intent();
                i.setAction(scannerInputPlugin);
                i.putExtra(extraData, "ENABLE_PLUGIN");
                activity.sendBroadcast(i);
            }
            scannerEnabled = true;
        }catch(Exception e){
            Log.d("TERMINALPROP", e.toString());
        }
}
public static void disableScanner(Activity activity){
        try {            
            if(!scannerEnabled) {
                Intent i = new Intent();
                i.setAction(scannerInputPlugin);
                i.putExtra(extraData, "DISABLE_PLUGIN");
                activity.sendBroadcast(i);
            }
            scannerEnabled = true;
        }catch(Exception e){
            Log.d("TERMINALPROP", e.toString());
        }
}

我正在使用Disablescanner并在Onresumie方法上启用了启用canner,而且它的工作正常,但我在onpreexecute和onpostexecute和onpostexecute方法上使用它们。

有时我会出现问题,即我的扫描仪不会对启用/禁用反应。看起来Dataweded运行时停止工作,我发送了广播,没有任何更改 - 扫描仪会残障,但每次都不会发生。

我能够多次重现问题。看起来这样:

我有活动A和B。在Active A At At At At At onResumie我正在禁用扫描仪,在开始活动B之前我要切换到活动b,在那里我再次称呼Enablescanner。

如果我非常快速切换活动,有时我的扫描仪会残障,并且停止对所有Enablescanner呼叫做出反应。它发生随机发生,有时在3个活动转换后,有时我必须切换20次等。

知道我做错了什么?

@Edit它可能带有dataweded inputScanner插件 - (如果(!scannerabled)从方法中删除(我从方法中删除),并且只是将结果代码添加到我的APK中,当扫描仪"阻止"扫描仪时,它会返回我scanner_aldready_enabled,当我调用EnableScanner时,但是Scanner但是Scanner被禁用:/<<<<

如果您从不希望在活动a中启用扫描仪,然后创建一个新的datawedge配置文件,将其与活动A相关联并禁用条形码输入插件。您将与启用条形码输入插件的活动B相关联。然后,您可以删除所有代码逻辑,围绕启用/禁用扫描仪,因为DataWede将自动处理该活动。

我注意到与datawedge的行为相同,版本之间的差异很小。

  • 6.7将完全停止发送广播事件或注意我的TC20上的触发按钮。
  • 6.6只会停止一定时间。切换应用程序/活动也可能起作用。

我发现(至少在6.7.47上)以下外观;

每当您想启用扫描仪时,

  1. 使用与整个应用程序链接的配置文件。(不仅具体活动)
  2. 通过意图禁用datawegde(并延迟一点)
  3. 通过意图启用datawede(并延迟一点)
  4. 通过意图启用扫描仪插件

使用这种方法,我的应用不会最终使用残疾扫描仪。

相关内容

  • 没有找到相关文章

最新更新