アンドリュースシリアル開発について、この記事は非常に明確です:
https://blog.csdn.net/qq_35952946/article/details/78863871
しかし、このプログラムコードのエラーで:
ます。java.lang.UnsatisfiedLinkError:失敗のdlopen:××××の.so:テキストの再配置を持っています
コンパイラファイルが古すぎるためです。
次の例のソースコードは、上記問題点を変更し、動作、実証例を提供します。
どのように使用するには:
シリアルポートのリストを取得します。
SerialPortFinder serialPortFinder =新しいSerialPortFinder(); serialPortFinder.getAllDevicesを返します();
オープン/クローズシリアルポート:
/// DEV / ttyS1の番号、シリアル番号、実際の条件に基づいて、後ろ ;最終SerialPortUtils portUtils新しい新しいSerialPortUtilsの=( "は/ dev / ttyS1の"、57600,0) portUtils.openSerialPort();
portUtils.closeSerialPort();
処理データが受信します:
//イベントリスナーシリアルデータ portUtils.setOnDataReceiveListener(新しい新しいSerialPortUtils.OnDataReceiveListener(){ バイト[] mBuffer; ハンドラハンドラハンドラ新しい新=(); @Override 公共ボイドonDataReceive(バイト[]バッファ、int型のサイズ){ Log.d(TAG "データは、受信された:" + Byter.byteToHex(緩衝液)); // //直接操作は、UIスレッドの例外が報告される:ViewRootImpl $ CalledFromWrongThreadException //溶液:ハンドラ // mBuffer =緩衝液; handler.post(Runnableを); } //オープンスレッドはUIを更新する のRunnable Runnableを新しい新しい= Runnableを(){ @Override ます。public void実行(){ recvContent.setText( "サイズ:" + String.valueOf(mBuffer.length)+ "数据监听:" + Byter.byteToHex(mBuffer)); } }。 });
コードファイルのアップロード後に