編輯:關於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.
(一)前言今天我們一起來看一下進度加載條ProgressBarAndroid控件的講解與基本使用。剛創建的React Native技術交流群(282693535),歡迎各
使用PopupWindow來實現彈出框,並且帶有動畫效果首先自定義PopupWindowpublic class LostPopupWindow extends Popu
廢話不多說,咱們第一篇文章就是模仿“知乎”的回答詳情頁的動畫效果,先上個原版的效果圖,咱們就是要做出這個效果 在實現之前,