基于Android平台的串口通信实现(3)

2012-11-01 22:05


  将该文件安装到工程目录下的libs\armeabi目录中。然后在src目录下编写的serialport.java文件,该文件用于JNI接口调用。关键代码如下:
  public class SerialPort {
  ……
  /*open the serial port*/
  mFd = open(device.getAbsolutePath(), baudrate);
  // JNI
  private native static FileDescriptor open(String path, int baudrate);
  public native void close();
  static {
  System.loadLibrary("serial_port");
  }
  }
  private native static FileDescriptor open(String path, int baudrate)这句申明,带有native关键字,说明该方法是本地方法。System.loadLibrary("serial_port")这句就是用来加载我们的c动态库的。上面声明方法的具体实现就在我们加载的库中。
  在完成了上述工作后,我们就可以针对具体应用来使用串口完成数据通信了。文中通过按键搜台,并显示出具体频段。
  界面布局采用xml文件来声明,主要包括两个Button和一个TextView视图。
  在Button上添加了按键响应,当按下Button时通过串口发送调频信号。
  bforeward.setOnClickListener(new View.OnClickListener() {
  public void onClick(View v) {
  try {
  mOutputStream.write('+');
  mOutputStream.write('\n');
  } catch (IOException e) {
  e.printStackTrace();
  }
  }
  });
  TextView用于接收串口信息,显示调频。
  protected void onDataRecEived(final byte[] buffer, final int size) {
  runOnUiThread(new Runnable() {
  public void run() {
  if (mReception != null) {
  mReception.setText(new String(buffer, 0, size));
  }
  }
  });
  }
  同时添加了Menu,当按下Menu键时可以选择“退出”或“关于”。
  //添加菜单选项
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
  menu.add(0, 0, 0,R.string.about);
  menu.add(0, 1, 1,R.string.exit);
  return true;
  }
  //实现选择菜单的动作
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
  int item_id = item.getItemId();
  switch(item_id) {
  case 0:
  ……
  case 1:
  MainMenu.this.finish();
  break;
  }return true;
  }
  编译运行该工程,就可以生成apk文件了。将apk文件和libserial_port.so安装到Android平台后,运行该应用程序,运行结果如图所示。
  4结论
  Android NDK使C语言开发人员也能参与到Android应用程序的开发中,增加代码的重用性。文中通过搭建串口应用的C代码底层接口,验证了其平台的可用性。但目前NDK还处于初级阶段,官方表示后期将提供更多的库,相信今后Android会对“C组件支持”更完善。
  参考文献:
  [1] 赵宏伟.Android NDK开发环境实现与应用[J].电脑知识与技术,2010(35).
  [2] 杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2010:484.
  [3] Android SDK Document[EB/OL].http://developer.android.com/guide/index.html.

基于Android平台的串口通信实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅论空中交通管制的安全性

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: