Java代码实现AP向CP侧发送AT指令

原创 2016年05月30日 20:27:19

AT指令是什么本文就不再阐述了,有兴趣的小伙伴可以在网上搜索一下。
背景:通过设备通道比如:/dev/TTY22,来发送AT指令,实际上就是向该设备通道去写,读数据,已达到控制CP模块的目的。
步入正题:

public static boolean sendAtCmd(String fileName,String atcmd){
          boolean atResult = false;//at指令的返回结果
          Log.i(TAG, "fileName = " + fileName + ", atcmd = " + atcmd);
          try {
            BufferedWriter atWriter = new BufferedWriter(new FileWriter(fileName));
            atWriter.write(atcmd, 0, atcmd.getBytes().length);
            atWriter.flush();
            atWriter.close();
            atWriter = null;
            //以上是往fileName该通道写入AT指令

            //下面来读取该通道里的AT指令返回结果
            BufferedReader atReader = new BufferedReader(new FileReader(fileName));
            String readAtString = null;
            char[] cReaderBuffer = new char[255];
            int read_len = 0;
            while(canRun){
                read_len = atReader.read(cReaderBuffer, 0, cReaderBuffer.length-1);
                Log.i(TAG, "read_len = " + read_len);
                if(read_len > 0){
                    if(null == readAtString){
                        readAtString = String.copyValueOf(cReaderBuffer, 0, read_len);
                    }else{
                        readAtString = readAtString + String.copyValueOf(cReaderBuffer, 0, read_len);
                    }
                    Log.i(TAG, "readAtString = " + readAtString);
                    if(readAtString.indexOf("\r\nOK\r\n")>=0){
                        atResult = true ;
                        break;
                    }else if (readAtString.indexOf("ERROR")>=0){
                        atResult = false ;
                        break;
                    }
                }
            }
            atReader.close();
            atReader = null ;

        }catch (FileNotFoundException e2) {
            Log.e(TAG,"FileNotFoundException :" + fileName);
            atResult = false ;
        } catch (IOException e) {
            atResult = false ;
            e.printStackTrace();
        }
          return atResult;
      }

需要注意的是:At指令的格式要正确比如:”AT+CFUN = 8 \r”,后面的”\r”必须要加。另外,由于是访问设备的通道,所以必须要有系统权限才可以,否则会出现FileNotFoundException 异常,所以要在AndroidManifest.xml文件中加入:android:sharedUserId=”android.uid.system”属性。
至此所有步骤已经完毕,如果你的通道可以正常的读写At指令的话,那么上述接口就可以使用了。

短信发送程序(java代码实现)

  • 2010年01月06日 15:16
  • 786KB
  • 下载

java代码实现发送邮件

java代码实现发送邮件

Java代码实现SMS短信发送功能

使用中国建网提供的SMS短信平台实现,登录http://sms.webchinese.cn/reg.shtml注册后,可以免费获得3条彩信和5条短信的使用。具体代码如下: /* *...

JAVA代码实现的面向对象的实例

  • 2011年12月27日 20:59
  • 2KB
  • 下载

Android中用Java代码实现zip文件解压缩

如果需要下载的文件有很多是中文名的,解压时有中文名的文件出现乱码,试了很多方法不能解决问题。据说有一个Java插件包,用这个插件包可以解决中文名乱码的问题,但不知解压的文件是否要用它提供的类压缩后的文...
  • zx4321
  • zx4321
  • 2012年07月03日 16:52
  • 12420

Java代码实现对properties文件有序的读写

直接使用java.util.Properties提供的类,读取properties文件的时候,读出来的是乱序的。 但是,我想要的,或者开发需求是要求,怎么读进来,怎么写出去。按顺序读,还得按顺序写。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java代码实现AP向CP侧发送AT指令
举报原因:
原因补充:

(最多只允许输入30个字)