美女网站大全视频成人免费-美女网站黄-美女网站黄a大全-美女网站免费视频-美女网站全黄-美女网站色视频全是黄

歡迎光臨~深圳市山星盛電子科技有限公司-稱重產品官方展示網站
服務熱線 全國服務熱線:

0755-2979 1990

您的位置: 網站首頁 > 新聞資訊

新聞資訊

電子秤藍牙雙模通訊Android低功耗藍牙(藍牙4.0)BLE開發(上)

前段時間,公司項目用到了手機APP和藍牙設備的通訊開發,這里也正好對低功耗藍牙(藍牙4.0及以后標準)的開發,做一個總結。

藍牙技術聯盟在2010年6月30號公布了藍牙4.0標準,4.0標準在藍牙3.0+HS標準的基礎上增加了對低功耗藍牙(BLE)的支持。相比原有的普通藍牙和高速藍牙,BLE最大的特點就是低功耗,低延時,快速的搜索和連接速度,但數據傳輸速度相比傳統藍牙低。接下去將從BLE的概念以及代碼兩個方面介紹Android下的BLE。

先來說說基本概念:

1.BLE相關概念

1.1 GATT、Service、Characteristic、Descriptor

BLE開發,經常會與四個概念發生關系:GATT、Service、Characteristic、Descriptor

 

  • GATT:是藍牙4.0特有的Profile通用規范,BLE應用的Profile均基于GATT。Gatt定義了一個服務框架規范,該框架包括對藍牙服務(Service)和服務特性(Characteristic)的定義和規范,和其中讀寫、通知的特性等。可以將GATT理解成BLE框架,我們在GATT上面實現BLE功能。

  • Service:是完成一個特定功能的數據和行為集合。在Gatt中,一個Service可能包含Service引用以及強制或者可選的Characteristic。

  • Characteristic:也叫特征值,一個Characteristic的定義包含了Characteristic本身,數值以及描述(Descriptor)的聲明。Characteristic是完成BLE具體功能的基本單位。

  • DescriptorDescriptor定義了Characteristic中數據的具體含義。

  總的來說,一個藍牙4.0的終端可以包含多個Service,一個Service可以包含多個Characteristic,一個Characteristic包含一個Value和多個Descriptor,一個Descriptor包含一個Value

 

 

 

 

 

 

 

 

1.2 中央(Central)與周邊(Periphery)

在BLE協議中,有兩個角色,周邊(Periphery)和中央(Central):

周邊是數據提供者,中央是數據使用/處理者;在iOS SDK里面,可以把一個iOS設備作為一個周邊,也可以作為一個中央;但是在Android SDK里面,Android手機只能作為中央來使用和處理數據;那數據從哪兒來?從BLE設備來,現在的很多可穿戴設備都是用BLE來提供數據的。

 

一個中央可以同時連接多個周邊,但是一個周邊某一時刻只能連接一個中央。

那么問題來了,如何定義周邊和中央?

關于周邊和中央,涉及到四個類:

  • BluetoothGattServer:作為周邊來提供數據

  • BluetoothGattServerCallback:返回周邊的狀態

  • BluetoothGatt:作為中央來使用和處理數據

  • BluetoothGattCallback:返回中央的狀態和周邊提供的數據。、

關系如圖下:

2. 開發Ble

了解了那些基礎概念后,我們就正式開始開發ble。

Ble的Android開發,主要是以下的幾個步驟:

1、添加權限

2、掃描Ble設備

3、連接Ble設備

4、數據通訊

 

 那么現在,開始一步步來完成。

2.1 添加權限:

在AndroidManifest.xml中添加Ble需要的權限,其實就兩個:

<!-- 應用使用藍牙的權限 --><uses-permission android:name="android.permission.BLUETOOTH" /><!-- 掃描藍牙設備或者操作藍牙設置 --><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

2.2 檢查是否設備是否支持藍牙,并打開藍牙

檢查設備是否支持藍牙

復制代碼

     /**
     * 檢查該設備是否支持藍牙     */
    public void isBle(Context context) {        //手機硬件支持藍牙
        if (!context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
            ViewUtils.getInstance().showToast("該設備不支持BLE,即將離開改頁面");
        }
    }

復制代碼

打開手機藍牙開關

復制代碼

    private BluetoothAdapter mBluetoothAdapter;//藍牙適配器    //打開藍牙權限
    if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
         Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
         startActivityForResult(enableBtIntent, What.Bluetooth.bluetoothEnable);
   }

復制代碼

2.3 掃描設備

 開始掃描和停止掃描,只需要調用對應的startLeScan()和stopLeScan()即可,但是需要將LeScanCallBack作為參數:

復制代碼

    // 超時時間
    private static final long SCAN_PERIOD = 10000;
    ...    private void scanLeDevice(final boolean enable) {        if (enable) {            // 達到超時時間,停止掃描
            mHandler.postDelayed(new Runnable() {
                @Override                public void run() {
                    mScanning = false;
                    mBluetoothAdapter.stopLeScan(mLeScanCallback);
                }
            }, SCAN_PERIOD);            //開始掃描            mBluetoothAdapter.startLeScan(mLeScanCallback);
        } else {            //停止掃描            mBluetoothAdapter.stopLeScan(mLeScanCallback);
        }
        ...
    }

復制代碼

JSC.jpg1603440167647810.jpg手提秤連把槍.jpg

用手機掃描二維碼關閉
二維碼
主站蜘蛛池模板: 国产精品香蕉在线一区二区 | 羞羞影院午夜男女爽爽影视大全 | 欧美美女视频一区二区三区 | 欧美自拍偷 | 三区在线观看不卡 | 欧美曰韩| 精品美女一级一区二区三 | 成人自拍电影在线观看 | 91精品视频未满十八岁 | 国产一区二区三区精品观看啪 | 欧美日韩国产精品一区二区在 | 男子操性感黑丝美女视频 | 日韩亚洲欧美一区二区三区综合 | 欧美性猛交xxxx黑人猛交 | 欧美va免费高清在线观看 | 国产日韩中文字幕制服 | 日韩xxxx高清在线观看 | 国产精品一区视频 | 国产亚洲欧美精品一区 | 国产区在线观看 | 国产一区在线不 | 美丽的姑娘高清版在线观看 | 在线视频一区二区三区三区不卡 | 精品午夜福利在线观看 | 欧美日韩高清国产aⅴ | 女人靠逼视频不卡的 | 国产原创| 中字幕一区二区三区乱 | 欧美αv | 欧美日韩亚洲国产综合乱 | 人人爱天天做夜夜爽2025 | 欧美视频亚洲视频日韩动漫 | 蜜桃影视 | 免费啪视频观试看视频 | 亚洲欧洲中文字幕免费看 | 精品乱码一区二区三四区视频 | 欧美日韩一区日本成人一区二区 | 成人深爱激情综合网 | 中国特黄美女一 | 欧美一区日韩二区国产三区在线 | 精品一卡2卡3卡4卡国色天香 |