请问大家有没有写过AndRoid串口通信程序,给贴点代码,多谢了。

解决方案 »

  1.   

    android有串口吗?现在手机都不用串口了吧?都是usb,
    你是在用gsm modern 吗? 
      

  2.   

    用jni可以实现串口的通信,但是我只能实现写串口,但是不能读串口哟,真的是烦。
      

  3.   

    这里http://code.google.com/p/android-serialport-api/有个可读写串口的API。
    我下下来在模拟器上试了一下,一直出现这样的错误:“you do not hava read/write permission to the serial port”.谁知道什么原因吗?为啥没权限,代码里面已经有: "chmod 666 " + device.getAbsolutePath() + "\n"这句了。
      

  4.   

    这里http://code.google.com/p/android-serialport-api/有个可读写串口的API。
    我下下来在模拟器上试了一下,一直出现这样的错误:“you do not hava read/write permission to the serial port”.谁知道什么原因吗?为啥没权限,代码里面已经有: "chmod 666 " + device.getAbsolutePath() + "\n"这句了。
      

  5.   


    我在手机上试了下,开始提示you do not hava read/write permission to the serial port,chmod 777 后可以执行
      

  6.   

    To zcpangzi:
    请问您在哪修改呀,我是修改了这句代码:
    String cmd = "chmod 777 " + device.getAbsolutePath() + "\n"
    + "exit\n";
    依然是没有读写权限,难道是模拟器上不支持?
      

  7.   

    权限问题一般是AndroidManifest.xml下面配置, 估计要允许修改硬件权限之类的,先查查吧
      

  8.   

    在 cmd 下 输入 adb shell 进入 terminal chmod 777 /dev/ttyS0 就可以了。
      

  9.   

    to elia2008大侠,我只能下载它的apk文件,所以没有办法修改
    String cmd = "chmod 777 " + device.getAbsolutePath() + "\n"+ "exit\n";
    请问你是如何把它的整个文件下下来的额。
    谢谢!
      

  10.   

    还有,pc机上的com1口,在android模拟器中对应哪个?
      

  11.   

    android支持USB转串的吗?如果支持,驱动到那里下
      

  12.   

    我也在烦这个没有权限的问题:有两个方安案。1、是adb -s [***] shell           chmod 777 /dev/ttys0
    2、修改init.rc 这个文件。。希有人能把这个文件修改的方法贴出来。帮大家解决这个问题。
      

  13.   

    请问你在哪修改的?
    我只能下载apk文件
      

  14.   

    回复6楼:1·要重新编APK文件       工程copy到NDK的samples中, 修改jni下的SerialPort.c文件 其中一行改为open(path_utf,O_RDWR | O_SYNC); 去掉中间选项重新编译生成 ***.apk文件, 装载就行啦!2·要更改权限在根目录下init.rc文件的最后添加命令,修改serail_uart0 读写权限。保存,重启reboot。刚刚搞定,希望对大家有帮助。
      

  15.   

    我按楼上的方法修改了fd = open(path_utf, O_RDWR | O_SYNC);但是仍然fd返回-1.
      

  16.   

    回复26楼:
    请问你的第一点有什么作用呢?
    第二点你是如何通过修改init.rc来修改权限了,在实体机上这个只读文件很困难。
    请问你能不能专门说明下
      

  17.   

    这个可以NDK ;就是对LINUX下串口编程加了一个JAVA的封装
      

  18.   


    比如我的android应用通过NDK+JNI方式去给串口发AT指令
      

  19.   

    为什么 byte[] buffer = new byte[64];
    if (mInputStream == null)
    return;
    // InputStreamReader ipsr = new InputStreamReader(mInputStream);
    // BufferedReader br = new BufferedReader(ipsr);
    // String[] str = new String[10];
    // int i = 0;
    // while (i < 10){
    // Log.e("port_TAG", "-->"+i);
    // str[i] = br.readLine();
    // i++;
    // if (i == 10)
    // System.out.println("Enough now");
    // }
    // Log.e("port_TAG", "-->"+str.toString());
    // Log.e("port_TAG", "--------------------");
    size = mInputStream.read(buffer);
    Log.e("port_TAG", "SIZE:" + size);执行到mInputStream.read(buffer)就不继续往下执行了呢?
      

  20.   

    我也在做这个东西,大概是这样吧,在模拟器中su -root
    然后chomd -777 ttys2
    在模拟器中就可以对ttys2进行读写了,但是现在遇到问题就是如何与模拟器的串口进行通信呢?
      

  21.   

    本人重新编译生成 ***.apk文件, 安装完成后,第一个button “SetUp” 配置完串口(ttyS2,57600)。
    再点第二个button “Console” 就出现异常,程序挂了。如图:
      

  22.   

    本人重新编译生成 ***.apk文件, 安装完成后,第一个button “SetUp” 配置完串口(ttyS2,57600)。
    再点第二个button “Console” 就出现异常,程序挂了。
    求高手指点
      

  23.   

    不知道40楼的你实现了吗?,在android模拟器中的???,能把源码发给我看看吗?邮箱[email protected]
      

  24.   

    我也在弄这个,一点思路都不会。网上找了资料什么用c语言什么的。有没有高手加我QQ帮指点下啊…………820825987求师傅
      

  25.   

    現在可以利用一顆IC----FT311D來實現免驅串口通信, 是利用安卓的Android accessory mode 實現, API已寫好, 呼叫就可使用,Q2593281509 [email protected]