2017-05-29 57 views
0

你好我有一个应用程序,我通过条形码扫描仪获得条目。我使用Zebra TC56作为测试设备。android-如何防止输入键/点击来自条码扫描器

我需要向用户显示一条警告消息,这就是为什么我有一个自定义对话框。 用户收到错误时正在显示对话框。我的对话框的图片可以在这里看到:enter image description here

红色部分下面是一个按钮,当点击按钮时,对话框将被关闭,用户将打开最新的屏幕。

一切工作正常,但有什么我不想要的东西。当用户扫描条形码(输入数据)按钮被触发时,对话框关闭。

我只想通过单击屏幕上的按钮(TAMAM)来关闭对话框。但是当我扫描任何东西时,对话框关闭。

这里是对话框类的代码:

public class ViewDialog { 
public void showDialog(Activity activity, String msg){ 
    final Dialog dialog = new Dialog(activity); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setCancelable(false); 
    dialog.setContentView(R.layout.customdialog); 

    TextView text = (TextView) dialog.findViewById(R.id.text_dialog); 
    text.setText(msg); 

    Button dialogButton = (Button) dialog.findViewById(R.id.btn_dialog); 
    dialogButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      dialog.dismiss(); 
     } 
    }); 

    dialog.show(); 

} 

}

我试图让焦点的地方,除了按钮(TAMAM),但它没有帮助。如果有人知道如何解除条形码扫描器的输入密钥,我真的需要一些帮助,将不胜感激。 (我已经将设备设置为发送Enter键,因为我需要在其他屏幕中)

回答

0

几乎没有办法做到这一点,我能想到的。首先,我假设您使用DataWedge自动将输入密钥附加到扫描数据,您可以动态切换到一个配置文件,该配置文件不会发送输入密钥,但使用SWITCH_PROFILE API以其他方式完全相同:http://techdocs.zebra.com/datawedge/6-3/guide/api/switchtoprofile/。这假设您仍然需要能够在对话框可见时进行扫描,如果您希望完全禁用扫描,则可以使用SCANNER_INPUT_PLUGIN API:http://techdocs.zebra.com/datawedge/6-3/guide/api/scannerinputplugin/。其次,您可以使用EMDK配置文件API更改KeyStroke输出插件的参数(http://techdocs.zebra.com/emdk-for-android/6-3/mx/data-capture/keystroke/#keystrokeoutput),然后应用该新修改的配置文件。我从来没有尝试过,但它应该工作 - 检查出下面的原理背后的原理:http://techdocs.zebra.com/emdk-for-android/6-3/samples/data-capture/

第三,你可以使用扫描仪的Java SDK,让你更多地控制扫描仪的行为http://techdocs.zebra.com/emdk-for-android/6-3/api/

+0

感谢您的回复先生,但您错过了我的问题。我设置了输入键,因为我需要在其他屏幕上发送。只有在这个警告信息中,我不需要输入密钥。我认为只要设备发送回车键而不考虑活动,只能通过活动中的代码完成。正如你所说,我也会尝试动态切换配置文件。 –

+1

@CemU我认为Darryn的意思是,在显示对话框之前(在dialog.show()之前),然后在对话框关闭之后(在dialog.dismiss()之后)关闭_off_, ')。 – TripeHound

相关问题