Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> [Android初級]android模擬器中的串口Serialport測試

[Android初級]android模擬器中的串口Serialport測試

編輯:關於Android編程

最近項目要使用到串口通訊,在搭載android系統的主板上監聽COM口的數據,這塊之前沒接觸過,我搜索了一下找到一個開源項目:android-serialport-api,通過這個開源項目,我可以輕松的在android應用層監聽和請求所需要的設備端口的數據。

使用前,考慮到沒有硬件的條件下,我先做個虛擬測試。在電腦上虛擬建立2個com口,(com2<-------->com3),他們是互通的,我要這麼做,通過android應用監聽com2,接收來自com2的數據並顯示,然後再往com2發送數據。那就開始吧!

先使用VSPD創建2個虛擬端口com2、com3,

\


接著要把serialpZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcnRhcGnPwtTYz8LAtKOstbzI67W9ZWNsaXBzZdbQo6zX1Ly6vajBotDCtcS5pLPMz+7Ev6OssNFhbmRyb2lkX3NlcmlhbHBvcnRfYXBpus1hbmRyb2lkX3NlcmlhbHBvcnRfYXBpLnNhbXBsZdXi1fu49rD8v7y1vdDCvai1xLLiytTP7sS/1tCjrLu509Cw0WpuabrNbGlic7a8v725/cilo6zP4LWx09qw0dX7uPbP7sS/v729+MTj19S8urXEz+7Ev8Dvo6E8L3A+CjxwPsi7uvPQwr2o0ru49rLiytTA4KOs08PT2r3TytW6zbeiy83K/b7dtcQ8L3A+CjxwPlNlcmlhbFBvcnRUZXN0PC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">package com.test.serialport; import java.io.IOException; import java.io.UnsupportedEncodingException; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import com.example.test1.R; public class SerialPortTest extends SerialPortActivity implements OnClickListener{ private static final String Tag = SerialPortTest.class.getSimpleName(); private Button mSendButton; private EditText mSendEdit,mShowEdit; private Application app; private Handler mHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.serial_test_layout); initView(); mHandler = new Handler(){ @Override public void handleMessage(Message msg) { if(msg.what == 1){ mShowEdit.setText(""); mShowEdit.setText(new String((byte[]) msg.obj,0,msg.arg1)); } } }; } private void initView(){ mSendButton = (Button) findViewById(R.id.send_button); mSendButton.setOnClickListener(this); mSendEdit = (EditText) findViewById(R.id.send_edit_text); mShowEdit = (EditText) findViewById(R.id.show_edit_text); } private void sendString(String str){ if(mOutputStream!=null){ try { mOutputStream.write(str.getBytes("GBK")); mOutputStream.flush(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } @Override protected void onDestroy() { super.onDestroy(); } @Override protected void onDataReceived(byte[] buffer, int size) { Message msg = new Message(); msg.what = 1; msg.obj = buffer; msg.arg1 = size; mHandler.sendMessage(msg); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.send_button: sendString(mSendEdit.getText().toString()); break; } } }

還有,在啟動android模擬器的時候,必須為其綁定好指定的設備端口,在本文中我監聽的是虛擬端口com2,所以你必須這樣啟動模擬器,命令:emulator @avdname -qemu -serial COM2

在代碼中我們要監聽的 端口 在目錄“/dev/ttS2”



這是簡單的測試這個api,具體的使用你可以自己看他提供的dem0.



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved