2
나는 그것을 할 관리 여기안드로이드 읽기의 USB 비동기
https://github.com/mik3y/usb-serial-for-android
다운로드 라이브러리를 사용하여 비동기 적으로 안드로이드 장치에 아두 이노에서 문자열을 읽기 위해 노력하고있어,하지만 코드는 한 번만이 아니라 작동 루프 사이클에서. asyncTask에서 작업을 시도했지만 프로그램이 충돌하여 루프에서 실행 가능한 runnable을 실행하여 사이클을 처리했지만 실행 가능 프로그램이 실행될 때마다 프로그램이 멈추고 실행 가능 프로그램이 종료 될 때 프로그램이 중단됩니다. .
@Override
protected void onCreate(Bundle savedInstanceState) {
try
{
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
driver = UsbSerialProber.acquire(manager);
if (driver != null) {
driver.open();
driver.setBaudRate(9600);
handler.postDelayed(runnable, 1);
}
}
catch(Exception ex){//do nothing}
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
try {
buffer = new byte[3000];
numBytesRead = driver.read(buffer, 3000);
String str = new String(buffer, "UTF-8");
buffer = null;
numBytesRead = 0;
handler.postDelayed(this, 1); //here is where the runnable is executed again. This generates the loop
}
catch (IOException e) {//do nothing}
}
};
당신이 도움이 될 수 있습니다 희망 :
try
{
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
driver = UsbSerialProber.acquire(manager);
if (driver != null) {
driver.open();
driver.setBaudRate(9600);
new Thread(runnable).start();
buffer = new byte[3000];
numBytesRead = driver.read(buffer, 3000);
String str = new String(buffer, "UTF-8");
buffer = null;
numBytesRead = 0;
}
}
catch(Exception ex){//do nothing}
내가 실행 가능한 실행하려면이 방법을 구조화 :
이는 USB에서 읽는 데 사용되는 코드입니다!