Android开发(35) 使用android_serialport_api 操作串口斑马打印机

概述

使用android设备操作串口的 斑马GK888T打印机,使用打印机打印二维码。

硬件设备连接方式:

安卓设备 通过 串口RS232 连接 斑马打印机的串口

串口操作类库 android_serialport_api

使用安卓设备操作串口的问题。 我找到一个框架:android_serialport_api,这个框架被托管在:

https://code.google.com/p/android-serialport-api/ 谷歌的代码库,无奈国内无法下载

https://github.com/cepr/android-serialport-api GITHUB的地址,这个可以下载

步骤

下载后,阅读下源代码,准备使用。

1.拷贝 jni 文件夹下的文件到 你的project中, 这些是jni调用的设定文件,包括:

  Android.mk
  Application.mk    
  gen_SerialPort_h.sh   
  SerialPort.c   
  SerialPort.h

2.拷贝libs 下的文件到你的 project中,这些是原生库,包括

  armeabi/libserial_port.so
  armeabi-v7a/libserial_port.so
  x86/libserial_port.so

3.在你的项目下新建 package: android_serialport_api,拷贝下列src下的class 到这个package下

  Application.java   
  SerialPort.java
  SerialPortActivity.java  
  SerialPortFinder.java

注意, package名称一定要是android_serialport_api。或者你需要修改Android.mk下对应的模块配置项。不然会提示找不到jni调用的库

4.拷贝资源文件等:

string.xml 的内容:

Please configure your serial port first.
You do not have read/write permission to the serial
    port.
The serial port can not be opened for an unknown
    reason.

5.修改AndroidManifest.xml,在application节点指定对应的 "android:name" 配置,如下面红色文字所示


6.下面写测试的activity。我的设备连接在安卓设备的端口 ”ttyS2”上,下面是个演示:




    
    

    
    

    

最后别忘了一个操作权限的问题,很多设备直接操作串口,会提示无权限 read/write 的问题,需要java层去提权,方法如下:

使用下面的方法执行指令: chmod 777 /dev/ttyS2

    public void exeShell(String cmd){        
      
        try{
             Process p = Runtime.getRuntime().exec(cmd);
             BufferedReader in = new BufferedReader(
                                 new InputStreamReader(
                           p.getInputStream())); 
             String line = null;  
             while ((line = in.readLine()) != null) {  
                Log.i("exeShell",line);                  
             }  
              
        }
        catch(Throwable t)
         {
              t.printStackTrace();
             }
    }

手动解决方法:

打开cmd,进入  adb shell,执行:chmod 777 /dev/ttyS2

https://code.google.com/p/android-serialport-api/

https://github.com/cepr/android-serialport-api

http://blog.csdn.net/imyang2007/article/details/8331800

http://blog.csdn.net/imyang2007/article/details/8331800

http://bbs.csdn.net/topics/380234030

你可能感兴趣的:(Android开发(35) 使用android_serialport_api 操作串口斑马打印机)