久久婷久久-久久婷婷丁香欧美-久久婷婷国产-久久婷婷国产麻豆91-久久婷婷激情-久久婷婷精品

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

0755-2979 1990

新聞資訊

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

前段時(shí)間,公司項(xiàng)目用到了手機(jī)APP和藍(lán)牙設(shè)備的通訊開發(fā),這里也正好對低功耗藍(lán)牙(藍(lán)牙4.0及以后標(biāo)準(zhǔn))的開發(fā),做一個(gè)總結(jié)。

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

先來說說基本概念:

1.BLE相關(guān)概念

1.1 GATT、Service、Characteristic、Descriptor

BLE開發(fā),經(jīng)常會與四個(gè)概念發(fā)生關(guān)系:GATT、Service、Characteristic、Descriptor

 

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

  • Service:是完成一個(gè)特定功能的數(shù)據(jù)和行為集合。在Gatt中,一個(gè)Service可能包含Service引用以及強(qiáng)制或者可選的Characteristic。

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

  • DescriptorDescriptor定義了Characteristic中數(shù)據(jù)的具體含義。

  總的來說,一個(gè)藍(lán)牙4.0的終端可以包含多個(gè)Service,一個(gè)Service可以包含多個(gè)Characteristic,一個(gè)Characteristic包含一個(gè)Value和多個(gè)Descriptor,一個(gè)Descriptor包含一個(gè)Value

 

 

 

 

 

 

 

 

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

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

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

 

一個(gè)中央可以同時(shí)連接多個(gè)周邊,但是一個(gè)周邊某一時(shí)刻只能連接一個(gè)中央。

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

關(guān)于周邊和中央,涉及到四個(gè)類:

  • BluetoothGattServer:作為周邊來提供數(shù)據(jù)

  • BluetoothGattServerCallback:返回周邊的狀態(tài)

  • BluetoothGatt:作為中央來使用和處理數(shù)據(jù)

  • BluetoothGattCallback:返回中央的狀態(tài)和周邊提供的數(shù)據(jù)。、

關(guān)系如圖下:

2. 開發(fā)Ble

了解了那些基礎(chǔ)概念后,我們就正式開始開發(fā)ble。

Ble的Android開發(fā),主要是以下的幾個(gè)步驟:

1、添加權(quán)限

2、掃描Ble設(shè)備

3、連接Ble設(shè)備

4、數(shù)據(jù)通訊

 

 那么現(xiàn)在,開始一步步來完成。

2.1 添加權(quán)限:

在AndroidManifest.xml中添加Ble需要的權(quán)限,其實(shí)就兩個(gè):

<!-- 應(yīng)用使用藍(lán)牙的權(quán)限 --><uses-permission android:name="android.permission.BLUETOOTH" /><!-- 掃描藍(lán)牙設(shè)備或者操作藍(lán)牙設(shè)置 --><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

2.2 檢查是否設(shè)備是否支持藍(lán)牙,并打開藍(lán)牙

檢查設(shè)備是否支持藍(lán)牙

復(fù)制代碼

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

復(fù)制代碼

打開手機(jī)藍(lán)牙開關(guān)

復(fù)制代碼

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

復(fù)制代碼

2.3 掃描設(shè)備

 開始掃描和停止掃描,只需要調(diào)用對應(yīng)的startLeScan()和stopLeScan()即可,但是需要將LeScanCallBack作為參數(shù):

復(fù)制代碼

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

復(fù)制代碼

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

用手機(jī)掃描二維碼關(guān)閉
二維碼
主站蜘蛛池模板: 国产成人三级无码中文在线观看 | 国产精品久久久久久nⅤ下载编辑 | 97精品在线观看 | 一本一本久久a久久精品综合麻豆 | 国内精品国产成人国产三级 | 免费无码婬片AAAA片直播 | 毛片免费播放 | 91在线视频观看 | 午夜精品久久久久久久久久老司机 | AV无码精品| 欧美十综合 | 懂色av色欲av蜜臀av | 美国十次午夜成人影院 | 精品人妻无码一区二区出白浆潮喷 | 国产乱码精品一区二区三区精东 | 国产乱伦网站 | 亚洲AV观看 | 亚洲AV无码一区二区乱子伦 | 欧美日韩成人网站 | 无码乱伦| 亚洲成AV人片一区二区梦乃 | 国产色情三级AV在线看 | 5566精品久久久久久无码 | 牛牛电影国产一区二区 | 国产视频二区 | 你懂的在线观看视频 | 银杏视频成人A片免费观看 日本欧美成人片AAAA | 麻豆果传媒成人A片免费看 欧美精品亚洲精品日韩精品 | 91丨国产丨白浆秘 高潮 | 国产二三区| 久久久无码精品秘 人口 | 日韩综合网 | 在线黄色网 | 亚洲一区二区三区无码 | 无码少妇好爽 | 日韩AV无码一区二区三区 | 丰满人妻熟妇乱又伦精品凤鸣阁 | 国产裸体永久免费无遮挡 | 中文精品字幕人妻熟女 | 人妻 丝袜美腿 中文字幕 | 亚洲精品无码久久牙蜜区 |