我知道 Android 不提供对串行端口的开箱即用的访问,除非设备已 root 或刷新了自定义 Android 版本,例如在 BeagleBone Black 板上 - 这正是我的情况。使用Android SerialPort API 项目,我可以通过示例 GUI 应用程序(稍作修改)访问和测试设备的串行端口。
不过,我还想为串行 API 添加 JUnit 测试,因为我会将其扩展为库模块以供客户端程序员使用。我尝试使用 AndroidTestCase,但收到错误:
java.lang.UnsatisfiedLinkError: Native method not found:
com.XXX.android.serialport_api.SerialPort.open:
(Ljava/lang/String;II)Ljava/io/FileDescriptor;
at com.XXX.android.serialport_api.SerialPort.open(Native
Method)
at com.XXX.android.serialport_api.SerialPort.<init
(SerialPort.java:32)
Run Code Online (Sandbox Code Playgroud)
在我看来,serialport.so 文件在 AndroidTestCase 提供的模拟环境中未加载/可见。我正在使用 Android Studio 中“新建模块”向导创建的标准测试结构。
任何建议或提示将不胜感激,因为我对该主题的搜索一无所获。如果需要,我很乐意提供测试类和实现(尽管实现与上面引用的开源示例中的 SerialPort.java 类几乎相同)。