如何动态地从USB设备读取数据

时间:2015-12-01 19:21:41

标签: android usb

我有一个从USB相机拍照的应用程序。问题是,我想用usb相机按钮拍照,而不是我的android上的按钮。

我发现按下usb相机按钮会向usb主机发送一个'S'字符串。

我希望能够通过读取'S'字符串知道用户何时按下此按钮。

我知道android有USB API,但到目前为止我发现的内容告诉我如何从USB读取数据,但请注意我想要的是获取usb设备试图向我发送内容的事件然后读它。

有什么办法吗?

Ps - 我已经能够连接到USB设备并打开它。

1 个答案:

答案 0 :(得分:0)

对于那些遇到同样问题的人,我发现自己:

由于usb设备发送的消息是一个字符串,我所做的是在我想要接收msg的活动中创建一个带背景的EditText和textColor Transparent。

因此,当我按下按钮并且usb设备发送'S'字符串时,它被复制到EditText文本中。

添加TextChangedListened解决了这个问题。

它不漂亮,但它有效。

editS = (EditText) findViewById(R.id.editTextS);
editS.setSelection(0);


editS.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {}

        @Override
        public void beforeTextChanged(CharSequence s, int start,
                                      int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start,
                                  int before, int count) {
            if(s.length() != 0){
                editS.setText("");

                if (mHandler.isCameraOpened()) {
                    mHandler.captureStill();
                }
                else{
                    Toast.makeText(Camera.this, "NO_USB_DEVICE_ATTACHED", Toast.LENGTH_SHORT).show();
                }
            }
        }
    });