Android EMDK扫描仪将扫描的值输入到输入文本中

Android EMDK扫描仪将扫描的值输入到输入文本中,android,barcode-scanner,motorola-emdk,Android,Barcode Scanner,Motorola Emdk,我有使用EMDK的应用程序,我的测试设备是TC55。 我成功地创建了用于启用和接收扫描数据的代码。但我有不同的问题-当我扫描条形码并使EditText字段在片段扫描中可见时,值总是添加到那个里。即使输入字段没有焦点 我不希望这种行为——我希望扫描的结果只传递给应用程序的后端方法,而不是输入textfield 请提供帮助默认情况下,Zebra Technologies android设备(如)配置为使用DataWedge插入条形码数据作为键盘输入事件。 这样,无需特定编码,应用程序就可以接收条形码

我有使用EMDK的应用程序,我的测试设备是TC55。 我成功地创建了用于启用和接收扫描数据的代码。但我有不同的问题-当我扫描条形码并使EditText字段在片段扫描中可见时,值总是添加到那个里。即使输入字段没有焦点

我不希望这种行为——我希望扫描的结果只传递给应用程序的后端方法,而不是输入textfield


请提供帮助

默认情况下,Zebra Technologies android设备(如)配置为使用DataWedge插入条形码数据作为键盘输入事件。
这样,无需特定编码,应用程序就可以接收条形码数据

DataWedge包括一个概要文件系统,您可以在其中将应用程序包名称和活动与特定概要文件关联,并通过Intents将数据发送到应用程序。你可以在上找到更多关于此的信息,尤其是在上

除此之外,Zebra Technologies还定期发布EMDK for Java和Xamarin,以实现Android应用程序中这些配置的自动化,并提供


免责声明:我为Zebra Technologies工作。

在与Xamarin EMDK合作数月后,我终于成功删除了该功能。只需进入您的个人资料,添加击键功能并禁用所有击键功能。

以下是
@GustavoBaiocchiCosta
的答案,下面是如何通过intent禁用击键:

public void setKeystrokeConfig(boolean enabled) {
    // Keystroke plugin properties bundle
    Bundle bParams = new Bundle();
    bParams.putString("keystroke_output_enabled", enabled ? "true" : "false"); // <-- 
    bParams.putString("keystroke_action_char", "9");
    bParams.putString("keystroke_delay_extended_ascii", "500");
    bParams.putString("keystroke_delay_control_chars", "800");
    
    // Keystroke plugin bundle
    Bundle bConfig = new Bundle();
    bConfig.putString("PLUGIN_NAME", "KEYSTROKE");
    bConfig.putBundle("PARAM_LIST", bParams);
    
    // Main bundle properties
    Bundle configBundle = new Bundle();
    configBundle.putString("PROFILE_NAME", "Profile12");
    configBundle.putString("PROFILE_ENABLED", "true");
    configBundle.putString("CONFIG_MODE", "CREATE_IF_NOT_EXIST");
    configBundle.putBundle("PLUGIN_CONFIG", bConfig);
    
    // Send intent to DataWedge
    Intent i = new Intent();
    i.setAction("com.symbol.datawedge.api.ACTION");
    i.putExtra("com.symbol.datawedge.api.SET_CONFIG", configBundle);
    i.putExtra("SEND_RESULT", "true");
    i.putExtra("COMMAND_IDENTIFIER", "KEYSTROKE_API");
    this.sendBroadcast(i);
}
public void setKeystrokeConfig(启用布尔值){
//击键插件属性包
Bundle bParams=新Bundle();

bParams.putString(“击键_输出_启用”,启用?“true”:“false”);//哪个功能?Datawedge可以在系统范围内禁用,也可以在每个应用程序或每个活动中禁用。对于默认情况(聚焦的EidtText接收条形码数据),您可以在正在使用的设备的集成商指南(可在zebra支持网站上获得)上找到更多信息,您说过数据将作为键盘事件传递。那么我可以在InputConnection#CommitteText方法中查看数据吗?谢谢!Zebra的DataWedge在默认情况下不再注入键盘事件。我看到一些版本具有可以发送关键事件的配置。但是您可以在Zebra的开发者门户:developer.Zebra上获得更多帮助。通用域名格式