美文网首页2aecebf915e9技术分享程序员
Android串口(SerialPort)开发问题简单总结

Android串口(SerialPort)开发问题简单总结

作者: 木子v大可 | 来源:发表于2016-01-14 16:13 被阅读4405次

    如何在android里面搭建JNI实现SerialPort编程,我就不详细介绍了,因为网上资料一堆。

    串口开发需要Root权限。

    我这文章主要是解答在使用SerialPort通讯时出现的问题。

    存放SerialPort对象的包名必须和JNI中SerialPort.c调用它的类所在的包名一致。一旦存放SerialPort对象的包名与链接库中函数的命名不相符,就不能调用链接库的函数 你们一定会问?为什么我在网上下载的demo里面没有这么多文件,但是也可以通讯呢?因为这是为兼容android高版本下能够正常调用串口去通讯,如果需要附件请留言 这个错误是最容易产生的。因为很多网上demo都是bin来的。但是实际有些android路径是xbin来的。建议最好去看下system下的路径是什么

    还有一个关于生产厂家串口的名字与实际串口名字不一致的问题:

    如果遇到实际串口名字与厂家标示的串口名字不一致的话,不要着急!!你只需打开dos然后输入图片命令就可以查看厂家标识的串口对应的实际串口名了。

    查看设备串口

    输入之后就会弹出如下图

    厂家标识的串口名->实际串口名

    另外个人建议:向串口发送命令时,最好放到子线程里面去发送。接受串口返回结果时,只需开一个子线程循环接受即可。

    当确定不需要再调用串口时,切记一定要调用SerialPort中的close方法去关闭。

    相关文章

      网友评论

      • b5586040cf06:我不root,只执行系统签名,可以串口开发吗?
        木子v大可:@cyg础慧电子 除非你拥有超级管理员权限就可以了。
        b5586040cf06:@木子v大可 假如在某一个串口可读写的情况下能对他进行开发吗?
        木子v大可:@cyg础慧电子 不行的。拥有超级管理权限是linux系统要求的
      • 涛餮xt:您好 串口号是怎么来的呢? 比如我连接了一台打印机 有很多/dev/ttyS1这种设备号 我该怎么确定具体是哪个呢?
        木子v大可: @Morphling_ 是不是没有权限?有没有root?
        我头疼了哈:你好 我想问一下 发送串口数据 返回CMD error后怎么处理呢
        木子v大可: @Morphling_ 你看文章内容。有获取厂家串口的命令。按照对应的去获取
      • 老北瓜:你好 我在获取root 权限时抛出异常了 那里应该怎么解决?
        木子v大可:@张麻子L 需要手动root权限
      • 我相信你爱过gg:大神啊!!我的 安卓开发板 root过了 可是还是不行啊 我是菜鸟,,,请问 我是 RS485串口 这种方式也行嘛?
        我相信你爱过gg:@木子v大可 就是 安卓 开发板上的 485A 和B
        木子v大可: @冰糖葫芦有点甜 RS485串口是指?
      • 1051d541d2ff:楼主,没有出现过调用串口的close方法,然后activity挂掉的情况
        木子v大可: @矢诚失玉 那报什么错了呢?
      • gd6321374:楼主,请问一下。我使用pc端的发送超过8字节数据,模拟器和软件就卡死了,这该怎么办?我是按照官方的开线程循环接收,但是只要超过8字节数据软件就死掉了。是不是安卓的串口最大一包是8字节的?
        木子v大可: @gd6321374 我没有遇到这种问题哦。你用真机试一下吧
        gd6321374:@木子大可_1024 我使用谷歌官方的demo在模拟器跑,然后使用串口助手发,还是一样,不能接收超过8字节的数据。请问一下你有遇到过这个情况吗?会不会是模拟器的关系?在实体机会不一样呢?还是串口底层需要设置?请问楼主有遇到过这种情况吗?
        木子v大可: @gd6321374 循环接受。那么有没有在主线程里面处理一些耗时东西?8个字节不是很大吧
      • 汤瓜瓜:你好,那Dev/ttys4得看厂家的?
        木子v大可: @汤呱呱 好像是吧。毕竟串口口是可以厂家修改的
        汤瓜瓜:@木子大可_1024 那是不是没有办法做所有串口设备的兼容?
        木子v大可: @汤呱呱 是的。有些厂家的串口名称不是这个。
      • 160a7ecaa2a0:楼主都没有集成的demo供大家使用?
        木子v大可: @160a7ecaa2a0 没有哦。
      • 小时不识月z:请问楼主,是不是意味着这个串口编程只针对root过的手机?
        木子v大可:@Jiesean 是的。
      • 相互交流:楼主遇到过,接收数据 ,接收不全的情况不??
        木子v大可: @如今美好 你适配过串口通讯jnilibs文件?
        如今美好:您好, 关注您好久了, 请问一下,您有认识会串口通讯的朋友不, 介绍认识一下, 我现在遇到了一个很奇怪的问题:我app发命令到模块可以, 模块返回数据也有(我用示波器抓到的),但是在我的app上面获取到的inputstream流就为0 很奇怪 (这些代码我在32bit手机上面是通的, 由于后来换了64bit手机, 我做了适配,然后就获取不到流了). 大神您要是会这个就提个思路, 感谢了
        木子v大可:@相互交流 是不是你没有循环接受啊?
      • 三生轻狂:棒
        木子v大可: @来生Amelia 谢谢。

      本文标题:Android串口(SerialPort)开发问题简单总结

      本文链接:https://www.haomeiwen.com/subject/ttfhkttx.html