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

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

 更新時(shí)間:2016年11月28日 17:04:41   作者:小波Linux  
這篇文章主要介紹了Android Socket 線程連接openwrt與arduino單片機(jī)串口雙向通信的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(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啟動(dòng)
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 = "連接錯(cuò)誤!";//消息換行
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ī)串口雙向通信,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(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)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Android中persistent屬性用法詳解

    Android中persistent屬性用法詳解

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

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

    這篇文章主要介紹了Android編程實(shí)現(xiàn)應(yīng)用自動(dòng)更新、下載、安裝的方法,涉及Android針對(duì)應(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)是指由于疏忽或錯(cuò)誤造成程序未能釋放已經(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ì),對(duì)大家學(xué)習(xí)或者使用gradle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10

最新評(píng)論

丘北县| 绵竹市| 息烽县| 基隆市| 长寿区| 莆田市| 抚顺县| 贺兰县| 河源市| 姜堰市| 定结县| 利津县| 日土县| 石台县| 油尖旺区| 古蔺县| 怀仁县| 太仓市| 阳山县| 黔东| 石首市| 永德县| 怀远县| 潮安县| 上思县| 耒阳市| 宜城市| 云霄县| 商河县| 常山县| 平阳县| 建平县| 威宁| 万源市| 凤凰县| 溧水县| 鄂伦春自治旗| 江西省| 乌拉特中旗| 华容县| 黄骅市|