【鸿蒙应用开发】【HCIA认证】模拟题每日1练(第105题) 原创

鸿蒙张荣超
发布于 2022-1-9 22:10
浏览
0收藏

【鸿蒙应用开发】【HCIA认证】模拟题每日1练(第105题)-鸿蒙开发者社区

 

BLE中心设备与外围设备进行数据交互的开发步骤如下:

1、调用startScan()接口启动BLE扫描来获取外围设备。
2、获取到外围设备后,调用connect(boolean isAutoConnect, BlePeripheraCallback callback)建立与外围BLE设备的GATT连接,boolean参数isAutoConnect用于设置是否允许设备在可发现距离内自动建立GATT连接。
3、启动GATT连接后,会触发connectionStateChangedEvent(int connectionState)回调,根据回调结果判断是否连接GATT成功。
4、在GATT连接成功时,中心设备可以调用discoverServices()接口,获取外围设备支持的Services、Characteristics等特征值,在回调servicesDiscoveredEvent(int status)中获取外围设备支持的服务和特征值,并根据UUID判断是什么服务。

5、根据获取到的服务和特征值,调用read和write方法可以读取或者写入对应特征值数据。

private List<GattService> services;
// 创建扫描过滤器然后开始扫描
List<BleScanFilter> filters = new ArrayList<BleScanFilter>();
centralManager.startScan(filters);
// 与外围设备建立连接,允许自动回连,连接会触发connectionStateChangedEvent回调
MyBlePeripheralCallback callback = new MyBlePeripheralCallback();
peripheraDevice.connect(true, callback);
// 连接后读取外围设备RSSI值,获取后触发readRemoteRssiEvent()回调
peripheraDevice.readRemoteRssiValue();

// 实现外围设备操作回调
private class MyBlePeripheralCallback extends BlePeripheralCallback {
    @Override
    public void connectionStateChangedEvent(int connectionState) { // GATT连接状态变化回调
        if (connectionState == ProfileBase.STATE_CONNECTED){
            peripheraDevice.discoverServices(); // 连接成功获取外围设备的Service
        } 
    }

    @Override
    public void servicesDiscoveredEvent(int status) { // 获取外围设备Service的回调
        if (status == BlePeripheralDevice.OPERATION_SUCC){
            services = peripheraDevice.getServices(); // 获取Service成功后获服务列表
            for (GattService service : services){
                // 对每个服务进行相应操作
            }
        }
    }

    @Override
    public void characteristicChangedEvent(GattCharacteristic charecteristic) { // 外围设备主动向中心设备发送特征值通知时触发回调
        // 根据通知的charecteristic获取特征值携带的数据
    }

    @Override
    public void characteristicWriteEvent(GattCharacteristic charecteristic, int ret) {
        if (ret == BlePeripheralDevice.OPERATION_SUCC){
            // 向外围设备写特征值数据成功后的操作
        }
    }

    @Override
    public void characteristicReadEvent(GattCharacteristic charecteristic, int ret) {
        if (ret == BlePeripheralDevice.OPERATION_SUCC){
            // 向外围设备读特征值数据成功后的操作
        }
    }

    @Override
    public void descriptorReadEvent(GattDescriptor descriptor, int ret) {
            // 向外围设备读描述值数据成功后的操作
    }

    @Override
    public void descriptorWriteEvent(GattDescriptor descriptor, int ret) {
           // 向外围设备写描述值数据成功后的操作
    }

    @Override
    public void readRemoteRssiEvent(int rssi, int ret) {   
        if (ret == BlePeripheralDevice.OPERATION_SUCC){
            // 读取外围设备RSSI值成功后的操作,对端RSSI值为rssi
        }
    }
}

 

综上所述,这道题的答案是:AD。

 

 

向大家推荐由我的教学团队开发的视频课程《鸿蒙应用开发HCIA认证超细致精讲》:

https://edu.51cto.com/topic/4940.html

 

 

————————————————————————————————————————————————————————————————————

    什么是鸿蒙应用开发HCIA认证呢?华为认证分为两大类,分别是:云服务与平台、ICT技术架构与应用。这两大类总共覆盖了20多个技术领域,包括大家熟知的:大数据、AI、云、智能计算、WLAN、安全、5G、等。这20多个技术领域中的每个技术领域,都由低到高分为3个等级:HCIA、HCIP、HCIE,其中,HCIA是华为认证的ICT工程师,HCIP是华为认证的高级工程师,HCIE是华为认证的ICT专家。ICT的全称是Information Communication Technology,也就是信息通信技术。
    随着鸿蒙的日趋流行,HarmonyOS被放在了华为认证第一的位置上,可见其重要性。HarmonyOS这个领域也由低到高分为3个等级:HCIA、HCIP、HCIE,分别表示工程师、高级工程师、专家。通过HCIA,说明你具有熟练的开发经验,扎实的理论基础;通过HCIP,说明你已经掌握复杂场景开发的能力;通过HCIE,说明你已经是全场景解决方案的专家,已经掌握了规划设计与系统调优的能力。目前,华为官方只发布了鸿蒙的HCIA,后续会逐渐发布鸿蒙的HCIP和HCIE。其中,HCIA又分为鸿蒙应用开发工程师和鸿蒙设备开发工程师。

    为什么要考鸿蒙应用开发HCIA认证呢?我觉得有这么几个主要原因。首先,这个认证在一定程度上证明了你的技术能力,尤其是当你去求职的时候,你说你行,怎么证明你行呢?认证的证书可以在一定程度上证明你行。考取鸿蒙认证的第2个主要原因是:抓住鸿蒙的红利期,物以稀为贵。如果你想赶上这波红利期,想要加入到鸿蒙的这波浪潮里,考取一个鸿蒙的认证,或多或少可以为你增添一些竞争的筹码。考取鸿蒙认证的第3个原因,也是我个人认为最重要的原因,它是系统学习和能力提升的绝佳方式!华为官方给出了认证考试的考试大纲,大纲中明确列出了考查的技能及需要掌握的知识点,最重要的是,大纲中列出的考点都是工作中必备的核心技能,只要你按照考试大纲去准备,把考查的技能知识点全部都掌握,就能在一段时期内达到一定的水平,而且不会让你的学习跑偏!在鸿蒙认证发布之前,相信很多朋友学习鸿蒙都是漫无目的的、没有目标的,所以学习效率很低!现在有了鸿蒙认证,即便你不考也没有关系,完全可以按照考试大纲去系统学习,从而提高你的学习效率,让自己的鸿蒙学习之路始终在一个正确的轨道上,不跑偏!至于全部学完之后,是否要考个认证,可以到时候再说,先按照考试大纲学起来!

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2022-1-9 22:10:45修改
1
收藏
回复
举报
回复
    相关推荐