5.3发送自定义广播

思路:

  1. 新建广播接收器MyBroadcastReceiver
  2. 在AndroidManifest.xml中注册广播接收器并在intent-fliter声明要接收的广播的名称XXX
  3. 在MainActivity中构建Intent对象,将要发送的广播的名称值XXX传入,调用sendBroadcast()方法将广播发送出去

MyBroadcastReceiver代码如下

public class MyBroadcastReceiver extends BroadcastReceiver {
    public MyBroadcastReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"receive in mybroadcastreceiver",Toast.LENGTH_SHORT).show();
    }
}

AndroidManifest.xml代码如下

        <receiver
            android:name=".MyBroadcastReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter android:priority="100">
                <action android:name="com.example.a51990.MY_BROADCAST"/>
            </intent-filter>
        </receiver>

MainActivity代码如下

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent("com.example.a51990.MY_BROADCAST");
                sendBroadcast(intent);
            }
        });

要发送有序广播只需要将
sendBroadcast(intent);//发送标准广播
改为
sendOrderedBroadcast(intent,null);//发送有序广播
既然发送的是有序广播,那么各个广播接收器接收广播的顺序就是有先后的,可以在AndroidManifest.xml修改优先级
例如下面这样

            <intent-filter android:priority="100">
                <action android:name="com.example.a51990.MY_BROADCAST"/>
            </intent-filter>

优先级高的广播接收器可以截断广播不让他继续往后传递,只需要在onReceive()方法中调用abortBroadcast()方法即可。
例如

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"receive in mybroadcastreceiver",Toast.LENGTH_SHORT).show();
        abortBroadcast();
    }
### 蓝牙低功耗 (BLE) 5.3 协议规范特性、功能与改进 #### 特性和功能概述 蓝牙低功耗(Bluetooth Low Energy, BLE)5.3 是 Bluetooth SIG 发布的一个重要更新版本,旨在进一步优化性能并提升用户体验。该协议继承了之前版本的核心优势,并引入了一些新的特性和增强功能。 1. **增强的 PHY 层支持** BLE 5.3 继续支持 Coded PHY 和 2 Mbps 高速率模式,这使得设备能够在保持低功耗的同时实现更高的数据传输效率[^4]。此外,新版本还增强了对不同物理信道分类的支持,从而提高了抗干扰能力和稳定性[^5]。 2. **广播扩展和周期性广告** 周期性广告功能得到了进一步完善,在减少能量消耗方面表现更加出色。这种机制允许外围设备定期发送少量的数据包给多个中心设备,非常适合用于 beacon 技术以及 IoT 场景下的传感器网络部署[^2]。 3. **隐私保护加强** 新增的功能让应用程序开发者更容易实施更强有力的安全措施来保障用户隐私。例如,通过随机化地址的方式可以有效防止追踪行为的发生;同时新增加了一个名为 “Privacy - Bluetooth Peripheral Usage Description”的权限设置项,方便 macOS 开发者在 Swift 中快速集成相关功能[^3]。 4. **连接参数请求流程简化** 对于某些特定应用场景而言,频繁调整连接间隔可能会带来额外开销。因此,在此版本中针对这一问题进行了针对性解决——即允许双方协商最佳参数组合而不必每次都重新发起完整握手过程,进而降低了延迟时间并节省电量资源。 5. **提高吞吐量的技术手段** 利用 ADI 字段过滤重复帧的方法减少了冗余操作所带来的负面影响,确保即使在网络环境较差或者存在较多冲突情况下也能维持较高的实际有效载荷传递率。 6. **其他改进点** 包括但不限于:改善初始化程序以加快首次建立链接所需的时间;增加更多灵活选项供制造商自定义产品行为等等。 #### 实际应用案例分析 假设我们正在设计一款基于 BLE 的健康监测手环,则可以通过启用上述提到的新特性获得如下好处: - 使用高精度计步算法并通过高效编码方式上传运动轨迹至手机端; - 凭借强大的安全框架阻止非法访问个人敏感信息如心率变化趋势图谱等资料; - 结合超长待机时间和即时通知提醒服务满足日常佩戴需求。 ```swift // 示例代码片段展示如何配置 info.plist 文件以便支持最新的 BLE 功能 let privacyDescriptionKey = "NSBluetoothPeripheralUsageDescription" UserDefaults.standard.set("We need access to your device&#39;s bluetooth capabilities.", forKey:privacyDescriptionKey) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值