我有一个从USB相机拍照的应用程序。问题是,我想用usb相机按钮拍照,而不是我的android上的按钮。
我发现按下usb相机按钮会向usb主机发送一个'S'字符串。
我希望能够通过读取'S'字符串知道用户何时按下此按钮。
我知道android有USB API,但到目前为止我发现的内容告诉我如何从USB读取数据,但请注意我想要的是获取usb设备试图向我发送内容的事件然后读它。
有什么办法吗?
Ps - 我已经能够连接到USB设备并打开它。
答案 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();
}
}
}
});