[英]How to read data from usb device on Android?
我有一個設備需要通過 USB 連接到我的 android 手機。 我只想讀取此設備發送的一些數據並將其顯示在我的應用程序屏幕上。 我已經嘗試了一些 API,例如https://github.com/felHR85/UsbSerial和https://github.com/mik3y/usb-serial-for-android我在下面找到了代碼
public class MainActivity extends AppCompatActivity {
private TextView data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data = findViewById(R.id.data);
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager);
if (availableDrivers.isEmpty()) {
return;
}
// Open a connection to the first available driver.
UsbSerialDriver driver = availableDrivers.get(0);
UsbDeviceConnection connection = manager.openDevice(driver.getDevice());
if (connection == null) {
// You probably need to call UsbManager.requestPermission(driver.getDevice(), ..)
return;
}
// Read some data! Most have just one port (port 0).
UsbSerialPort port = driver.getPorts().get(0);
try {
port.open(connection);
port.setParameters(57600, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);
byte buffer[] = new byte[8];
int numBytesRead = port.read(buffer, 1000);
//Log.d(TAG, "Read " + numBytesRead + " bytes.");
data.setText(numBytesRead);
} catch (IOException e) {
// Deal with error.
} finally {
try {
port.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
它根本不讀取任何內容,有沒有更簡單的方法來做到這一點?
我試圖讀取的設備是血氧計 (Ut-100)。 我只需要一些數據顯示在屏幕上,有沒有一種簡單的方法可以簡單地返回一個字節數組並自己處理它? 謝謝你的幫助
您可以從Android Developer文檔USB HOST MODE開始,以了解如何通過USB進行通信。
您應該從“ USB主機概述 ”部分開始。
通常缺少 UsbManager.requestPermission(...) 處理。
請看最近增強的例子@https ://github.com/mik3y/usb-serial-for-android
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.