最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android Socket 線程連接openwrt與arduino單片機(jī)串口雙向通信的實(shí)例解析

 更新時(shí)間:2016年11月28日 17:04:41   作者:小波Linux  
這篇文章主要介紹了Android Socket 線程連接openwrt與arduino單片機(jī)串口雙向通信的相關(guān)資料,非常不錯,具有參考借鑒價(jià)值,需要的朋友可以參考下

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

package zcd.netanything;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Fragment;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Toast;
public class MyCar extends Fragment implements OnClickListener{
private static String wifiurl;
private static String wificom;
private static String wificamera;
private Thread mThreadClient = null;
private Socket mSocketClient = null;
//視頻線程
private Thread mThreadvideo = null;
private String recvMessageClient ;
//MySurfaceView r;
private boolean isConnect=false; 
//指令發(fā)出 數(shù)據(jù)緩存
static PrintWriter mPrintWriterClient = null;
static BufferedReader mBufferedReaderClient = null;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.mycar,container, false);
view.findViewById(R.id.button1).setOnClickListener(this);
view.findViewById(R.id.button2).setOnClickListener(this);
view.findViewById(R.id.button3).setOnClickListener(this);
view.findViewById(R.id.button4).setOnClickListener(this);
view.findViewById(R.id.button5).setOnClickListener(this);
return view;
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
//內(nèi)部類 廣播接收
public static class myReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
wifiurl = intent.getStringExtra("wifiurl");
wificom = intent.getStringExtra("wificom");
wificamera = intent.getStringExtra("wificamera");
Toast.makeText(context, "廣播已經(jīng)接收", Toast.LENGTH_SHORT).show();
}
}
//來源 http://www.cnblogs.com/xiaobo-Linux/ 趙存檔 QQ463431476 
//線程mRunnable啟動
private Runnable mRunnable = new Runnable() 
{
public void run()
{
try 
{ 
//連接服務(wù)器
mSocketClient = new Socket(wifiurl,Integer.parseInt(wificom)); 
//取得輸入、輸出流
mBufferedReaderClient = new BufferedReader(new InputStreamReader(mSocketClient.getInputStream()));
mPrintWriterClient = new PrintWriter(mSocketClient.getOutputStream(), true);
recvMessageClient = "wifi成功連接";//消息換行
Message msg = new Message();
msg.what = 1;
mHandler.sendMessage(msg); 
}
catch (Exception e) 
{
recvMessageClient = "連接錯誤!";//消息換行
Message msg = new Message();
msg.what = 1;
mHandler.sendMessage(msg);
return;
} 
setRecvMessage();
}
};
public void setRecvMessage(){ 
char[] buffer = new char[256];
int count = 0;
while (true)
{
try
{
if((count = mBufferedReaderClient.read(buffer))>0)
{ 
recvMessageClient = getInfoBuff(buffer, count);//消息換行
//Thread.sleep(500);
Message msg = new Message();
msg.what = 1;
mHandler.sendMessage(msg); 
//Toast.makeText(getActivity(),recvMessageClient,Toast.LENGTH_SHORT).show();
}
}
catch (Exception e)
{
recvMessageClient = "接收異常:" + e.getMessage() + "\n";//消息換行
Message msg = new Message();
msg.what = 0;
mHandler.sendMessage(msg);
}
}
}
Handler mHandler = new Handler()
{ 
public void handleMessage(Message msg) 
{ 
super.handleMessage(msg); 
if(msg.what == 0)
{
Toast.makeText(getActivity(),recvMessageClient,Toast.LENGTH_SHORT).show();//刷新消息機(jī)制
}
else if(msg.what == 1)
{
try
{
String result = recvMessageClient;
Toast.makeText(getActivity(),result,Toast.LENGTH_SHORT).show(); 
}catch(Exception e)
{
//Toast.makeText(getActivity(),"無法獲取數(shù)據(jù),檢查網(wǎng)絡(luò)是否連接!",Toast.LENGTH_SHORT).show();//刷新消息機(jī)制
}
}
} 
};
//接收處理
private String getInfoBuff(char[] buff, int count)
{
char[] temp = new char[count];
for(int i=0; i<count; i++)
{
temp[i] = buff[i];
} 
return new String(temp);
}
/*public void onDestroy() {
super.onDestroy();
if (isConnect) 
{ 
isConnect = false;
try {
if(mSocketClient!=null)
{
mSocketClient.close();
mSocketClient = null;
//mThreadvideo.destroy();
mPrintWriterClient.close();
mPrintWriterClient = null;
recvMessageClient = "網(wǎng)絡(luò)端口成功";//消息換行
Message msg = new Message();
msg.what = 0;
mHandler.sendMessage(msg);
}
} catch (IOException e) {
e.printStackTrace();
}
mThreadClient.interrupt();
}
}
*/
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.button1:
mPrintWriterClient.print("f");
mPrintWriterClient.flush();//清空
Toast.makeText(getActivity(),"前進(jìn)",Toast.LENGTH_SHORT).show();
break;
case R.id.button2:
mPrintWriterClient.print("b");
mPrintWriterClient.flush();
Toast.makeText(getActivity(),"后退",Toast.LENGTH_SHORT).show();
break;
case R.id.button3:
mPrintWriterClient.print("l");
mPrintWriterClient.flush();
Toast.makeText(getActivity(),"向左",Toast.LENGTH_SHORT).show();
break;
case R.id.button4:
mPrintWriterClient.print("r");
mPrintWriterClient.flush(); 
Toast.makeText(getActivity(),"向右",Toast.LENGTH_SHORT).show();
break;
case R.id.button5:
if(!isConnect)
{
//開啟mThreadClient線程
mThreadClient = new Thread(mRunnable);
mThreadClient.start(); 
Toast.makeText(getActivity(),"嘗試連接網(wǎng)絡(luò)",500).show();
}
else {
onDestroy();
isConnect=false;
// Btn_openwifi.setBackgroundResource(R.drawable.disconnect);
}
//開啟mThreadvideo線程
//mThreadvideo = new Thread(mRunvideo);
//mThreadvideo.start();//開啟視頻監(jiān)聽
break;
//case R.id.button6:
//關(guān)閉wifi
/* if (isConnect) 
{ 
isConnect = false;
try {
if(mSocketClient!=null)
{
mSocketClient.close();
mSocketClient = null;
//mThreadvideo.destroy();
mPrintWriterClient.close();
mPrintWriterClient = null;
recvMessageClient = "網(wǎng)絡(luò)端口成功";//消息換行
Message msg = new Message();
msg.what = 0;
mHandler.sendMessage(msg);
}
} catch (IOException e) {
e.printStackTrace();
}
mThreadClient.interrupt();
}
*/
// break;
}
} 
}

以上所述是小編給大家介紹的Android Socket 線程連接openwrt與arduino單片機(jī)串口雙向通信,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android實(shí)現(xiàn)圖像切換器

    Android實(shí)現(xiàn)圖像切換器

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圖像切換器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Android 訪問文件權(quán)限的四種模式介紹

    Android 訪問文件權(quán)限的四種模式介紹

    這篇文章主要介紹了Android 訪問文件權(quán)限的四種模式介紹的相關(guān)資料,非常不錯具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Android中persistent屬性用法詳解

    Android中persistent屬性用法詳解

    這篇文章主要介紹了Android中persistent屬性用法,詳細(xì)分析了persistent屬性的功能及相關(guān)用法,需要的朋友可以參考下
    2016-06-06
  • Android編程實(shí)現(xiàn)應(yīng)用自動更新、下載、安裝的方法

    Android編程實(shí)現(xiàn)應(yīng)用自動更新、下載、安裝的方法

    這篇文章主要介紹了Android編程實(shí)現(xiàn)應(yīng)用自動更新、下載、安裝的方法,涉及Android針對應(yīng)用程序包的讀取,屬性判斷與更新操作的相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • Android編程實(shí)現(xiàn)帶漸變效果的圓角矩形示例

    Android編程實(shí)現(xiàn)帶漸變效果的圓角矩形示例

    這篇文章主要介紹了Android編程實(shí)現(xiàn)帶漸變效果的圓角矩形,涉及Android界面布局及屬性設(shè)置相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Android集成支付寶支付功能示例

    Android集成支付寶支付功能示例

    本篇文章主要介紹了Android集成支付寶支付功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android控件之TabHost用法實(shí)例分析

    Android控件之TabHost用法實(shí)例分析

    這篇文章主要介紹了Android控件之TabHost用法,以完整實(shí)例形式較為詳細(xì)的分析了TabHost控件實(shí)現(xiàn)選項(xiàng)卡的相關(guān)技巧,需要的朋友可以參考下
    2015-09-09
  • 詳解Android性能優(yōu)化之內(nèi)存泄漏

    詳解Android性能優(yōu)化之內(nèi)存泄漏

    內(nèi)存泄漏(memory leak)是指由于疏忽或錯誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。本篇文章主要介紹了Android性能優(yōu)化之內(nèi)存泄漏,有興趣的可以了解一下。
    2016-12-12
  • Android?通過productFlavors實(shí)現(xiàn)多渠道打包方法示例

    Android?通過productFlavors實(shí)現(xiàn)多渠道打包方法示例

    這篇文章主要為大家介紹了Android?通過productFlavors實(shí)現(xiàn)多渠道打包方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 關(guān)于gradle你應(yīng)該知道的一些小事

    關(guān)于gradle你應(yīng)該知道的一些小事

    這篇文章主要給大家介紹了關(guān)于gradle你應(yīng)該知道的一些小事,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用gradle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10

最新評論

洪雅县| 江城| 北宁市| 六枝特区| 来宾市| 康乐县| 禹州市| 伊宁县| 阿拉善左旗| 泌阳县| 叙永县| 波密县| 墨竹工卡县| 嵩明县| 水富县| 石楼县| 交口县| 萍乡市| 泸州市| 封开县| 洛宁县| 保康县| 鄱阳县| 额济纳旗| 沾化县| 滁州市| 祁门县| 阿鲁科尔沁旗| 吉林市| 泰兴市| 武夷山市| 明光市| 五家渠市| 嘉义市| 雷山县| 罗定市| 谷城县| 馆陶县| 兴业县| 磴口县| 洞口县|