<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
        中華工控網首頁
          P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
          電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        安卓的藍牙全面開發教程
        --工業觸摸一體機藍牙解決方案
        收藏本文     查看收藏

        開發系統:Android4.4.2 運行平臺:廣州微嵌安卓工業平板
        安卓的藍牙的打開包括獲取藍牙模塊、搜索藍牙設備、藍牙設備間的配對、連接跟通信等部分。
        1、安卓中使用藍牙模塊需要藍牙的使用權限,需要在AndroidMainfest.xml中聲明:

        允許程序連接到已配對的藍牙設備 <uses-permission android:name="android.permission.BLUETOOTH"/> 允許程序發現和配對藍牙設備 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

        2、獲取藍牙適配器并打開藍牙

        //獲取藍牙適配器 mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if(mBluetoothAdapter ==null){ Toast.makeText(this, "不支持藍牙設備",Toast.LENGTH_LONG).show(); bluetoothSwitch.setEnabled(false); return; } 打開藍牙設備 //判斷藍牙設備是否處于關閉狀態,如果是則打開藍牙 if(!mBluetoothAdapter.isEnabled()){ if(mBluetoothManager.enable()){//打開藍牙設備 //開啟藍牙后,需設置藍牙為可發現狀態,這樣其它的藍牙設備才能搜索到。 Intent discoverableIntent = new Intent (BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); //最后的參數設置可見的時間,最長為300s,設為0表示一直可見 discoverableIntent.putExtra( BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0); startActivity(discoverableIntent); //成功打開藍牙后開始搜索附近的藍牙設備 mBluetoothAdapter.startDiscovery(); //停止搜索:mBluetoothAdapter.cancelDiscovery(); } }else{ //關閉藍牙設備 mBluetoothManager.disable(); } //獲取已配對的藍牙設備 Set<BluetoothDevice> Bondedlist =mBluetoothAdapter.getBondedDevices();

        3、定義廣播接收,在開始搜索附近的藍牙設備,系統回發出三個搜索狀態的廣播

        BluetoothDevice.ACTION_FOUND //搜索到設備 BluetoothAdapter.ACTION_DISCOVERY_STARTED //開始搜索 BluetoothAdapter.ACTION_DISCOVERY_FINISHED //搜索結束 定義廣播接收相應的廣播狀態 private class BluetoothReceive extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO 自動生成的方法存根 String action = intent.getAction(); //判斷廣播內容 //搜索到藍牙設備廣播 if(action.equals(BluetoothDevice.ACTION_FOUND)){ //獲取搜素到的藍牙設備 BluetoothDevice device =intent.getParcelableExtra (BluetoothDevice.EXTRA_DEVICE); if(device.getName()==null){ return; } //獲取搜素到的藍牙設備是否已經配對 if(device.getBondState() == BluetoothDevice.BOND_BONDED){ deviceSet.add(device); adapter.add(device.getName()+":可使用"); } else { deviceSet.add(device); adapter.add(device.getName()+":可配對"); } } //搜索結束的廣播 else if(action.equals (BluetoothAdapter.ACTION_DISCOVERY_FINISHED)){ Toast.makeText(MainActivity.this, "掃描結束",Toast.LENGTH_LONG).show(); } } }

        4、藍牙設備的配對

        //獲取搜索到的藍牙設備列表中的藍牙設備及其狀態 BluetoothDevice device = deviceSet.get(position); int state = deviceSet.get(position).getBondState(); //判斷藍牙設備狀態 Switch(state){ //藍牙設備沒有配對 case BluetoothDevice.BOND_NONE: //配對方法一: Method createBondMethod= device.getClass().getMethod("createBond"); Boolean returnValue =(Boolean)createBondMethod.invoke(device); //配對方法二: device.createBond(); break; //藍牙設備已經配對 case BluetoothDevice.BOND_BONDED: //可選操作:刪除配對信息、連接藍牙設備 //刪除配對信息: Method createBondMethod= device.getClass().getMethod("removeBond"); Boolean returnValue =(Boolean)createBondMethod.invoke(device); //連接藍牙設備: //建立藍牙客戶端并連接服務器 mBluetoothClient = new BluetoothClient(MainActivity.this,device,uuid); mBluetoothClient.connect(); break; }

        上面的內容主要是獲取藍牙模塊、打開藍牙、搜素附近藍牙設備跟進行配對。
        下面的是藍牙設備間建立連接并進行通信。
        藍牙設備的連接、通信跟網絡通信TCP的類似,分別有服務器、客戶端,先是新建一個服務器用于監聽客戶端的連接請求,客戶端向服務器發送連接請求,連接成功后雙方都獲得BluetoothSocket的實例,雙方可以通過BluetoothSocket的實例進行通信。
        5、服務器:
        新建一個藍牙服務器并監聽客戶端的連接請求
        在listenUsingRfcommWithServiceRecord中有一個參數叫做UUID,UUID(Universally Unique Identifier)是一個128位的字符串ID,被用于唯一標識我們的藍牙服務。

        String name = mBluetoothAdapter.getName(); try { //創建一個BluetoothServerSocket藍牙服務器,并開啟接收線程等待客戶端的連接 mServerSocket = mBluetoothAdapter .listenUsingRfcommWithServiceRecord(name, uuid); new acceptThread().start(); } catch (IOException e) { // TODO 自動生成的 catch 塊 e.printStackTrace(); }; 等待客戶端連接: public class acceptThread extends Thread{ @Override public void run() { // TODO 自動生成的方法存根 try { //該方法是服務器阻塞等待客戶端的連接, //監聽到有客戶端連接返回一個BluetoothSocket的實例 socket = mServerSocket.accept(); Log.d("Server", "以連接"); //開啟讀取線程讀取客戶端發來的數據 read = new readThread(); read.start(); } catch (IOException e) { // TODO 自動生成的 catch 塊 e.printStackTrace(); } super.run(); } } 讀取數據: public class readThread extends Thread{ @Override public void run() { // TODO 自動生成的方法存根 if(socket.isConnected()){ try { //獲取socket的InputStream并不斷讀取數據 InputStream in = socket.getInputStream(); byte[] buff = new byte[1024]; while(!isInterrupted()){ int size = in.read(buff);; if(size>0){ Log.d("RECVDATA", String.valueOf(buff)); } } in.close(); } catch (IOException e) { // TODO 自動生成的 catch 塊 e.printStackTrace(); } } super.run(); } } 發送數據: public void write(String str){ if(socket.isConnected()){ try { //獲取socket的OutputStream并寫入數據 OutputStream out = socket.getOutputStream(); out.write(str.getBytes()); out.close(); } catch (IOException e) { // TODO 自動生成的 catch 塊 e.printStackTrace(); } } } //關閉服務器: mServerSocket.close(); //關閉BluetoothSocket: Socket.close();

        6、客戶端:

        獲取一個BluetoothSocket的實例并向服務器發送連接請求 public class ConnectThread extends Thread{ @Override public void run() { // TODO 自動生成的方法存根 try { //獲取BluetoothSocket實例并連接服務器,該處的uuid需與服務器短 //的uuid一致才能連接成功,connect()是回阻塞的。 socket = mBluetoothDevice .createRfcommSocketToServiceRecord(uuid); socket.connect() Log.d("TAG", "連接成功"); read = new ReadThread(); read.start(); } catch (IOException e) { // TODO 自動生成的 catch 塊 e.printStackTrace(); } super.run(); } } 客戶端的讀取跟發送與服務器的相同。

        至此安卓系統的藍牙的基本功能就基本完成了,在兩塊都開啟了藍牙的安卓設備上分別建議服務器跟客戶端,并進行連接,連接成功后雙方就可以通過藍牙進行通信了。


         

        狀 態: 離線

        公司簡介
        產品目錄
        供應信息

        公司名稱: 廣州市微嵌計算機科技有限公司
        聯 系 人: 李工
        電  話: 020-32206882
        傳  真: 020-32207973
        地  址: 廣東廣州黃埔永和新莊工業園B座
        郵  編: 510630
        主  頁:
         
        該廠商相關解決方案:
        智能終端wince工業觸摸控制屏的應用解決方案
        嵌入式工業平板電腦應用智能家居解決方案
        嵌入式工控觸摸一體機在道路稱重計費系統中的應用
        支持can現場總線的工業觸摸一體機應用案例
        電力系統工業觸摸屏一體機的應用
        微嵌安卓系統工業平板電腦在車載行業應用
        WindowsCE上usb驅動的.cab安裝包
        嵌入式工控機針對液晶屏生產線系統解決方案
        更多方案...
        立即發送詢問信息在線聯系該解決方案廠商:
        用戶名: 密碼: 免費注冊為中華工控網會員
        請留下您的有效聯系方式,以方便我們及時與您聯絡

        關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網客服熱線:0755-86369299
        版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 亚洲AV日韩精品久久久久| 国产精品一区二区中文| 四虎成人在线观看免费| 最近最新中文字幕视频| 蜜臀98精品国产免费观看| 99精品国产精品一区二区| 成人免费在线播放av| 成年免费视频播放网站推荐| 人妻丰满熟妇无码区免费| 亚洲国产一区二区三区四| 人妻av无码系列一区二区三区| 亚洲区日韩精品中文字幕| 好吊视频在线一区二区三区| www射我里面在线观看| 婷婷色爱区综合五月激情韩国| 韩国无码AV片在线观看网站| 国产精品色一区二区三区| 久久婷婷国产精品香蕉| 中文字幕无码白丝袜| 99网友自拍视频在线| 一本无码在线观看| 少妇av一区二区三区无码| 暖暖 在线 日本 免费 中文| 国精品91人妻无码一区二区三区| 99精品久久久中文字幕| 日本乱人伦AⅤ精品| 国产综合av一区二区三区| 激情自拍校园春色中文| 99偷拍视频精品一区二区| 亚洲AV综合色区无码二区偷拍 | 美女胸18下看禁止免费视频| 国产不卡一区二区精品| 亚洲av伦理一区二区| 亚洲精品中文字幕一区二| 国产精品成人午夜久久| 少妇撒尿一区二区在线视频| 亚洲午夜无码久久久久蜜臀AV| 国模吧双双大尺度炮交gogo| 国产午夜福利高清在线观看 | 波多野结衣视频一区二区| 365天今时之欲在线观看|