两个独立app广播的发送与接收

本文介绍了在Android8.1中,如何在两个独立的应用之间进行静态广播的发送与接收。由于Android8.1对静态广播的限制,传统方式无法触发注册的静态广播。文中通过跨进程通信的示例详细阐述了实现方法,包括接收端的manifest配置、发送端的广播发送以及具体的广播Action和Receiver信息。
摘要由CSDN通过智能技术生成

Android8.1 两个独立app间静态广播的发送与接收

Android8之后取消了大部分的静态广播的注册,可以参考广播限制,使用以前发送广播的方式是不能够调起注册的静态广播的。这里直接用跨进程(两个APP)通信的方式进行展示,在同一个进程中也是一样的:

1 ) 接收广播app1的manifest配置:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ff.calendar">
<receiver
    android:name="com.ff.auto.calendar.NetStateBroadcast"
    android:exported="true">
    <intent-filter>
        <action android:name="com.ff.calendar.action.FIVE_FINGER"/>
    </intent-filter>
</receiver>

 

2 ) 发送广播app2:

Intent intent = new Intent("com.ff.calendar.action.FIV
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您提供一个简单的实现方案。 首先,在APP1中发送广播,您可以编写以下代码: ```java // 发送广播 Intent intent = new Intent(); intent.setAction("com.example.broadcast.MY_BROADCAST"); intent.putExtra("student_info", "学号:123456,姓名:张三"); sendBroadcast(intent); ``` 其中,`com.example.broadcast.MY_BROADCAST`是自定义的广播Action,`student_info`是传递的学生信息。 接下来,在APP2中接收广播并显示学生信息,您可以编写以下代码: ```java // 注册广播接收器 BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if ("com.example.broadcast.MY_BROADCAST".equals(action)) { String studentInfo = intent.getStringExtra("student_info"); // 显示学生信息 Toast.makeText(context, studentInfo, Toast.LENGTH_SHORT).show(); } } }; IntentFilter filter = new IntentFilter(); filter.addAction("com.example.broadcast.MY_BROADCAST"); registerReceiver(receiver, filter); ``` 其中,`com.example.broadcast.MY_BROADCAST`是注册的广播Action,`student_info`是接收到的学生信息。在广播接收器中,您可以根据需要处理接收到的信息,这里我将它显示在了Toast中。 注意,为了保证APP2能够接收APP1发送广播,需要在APP1的AndroidManifest.xml文件中添加以下代码: ```xml <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <receiver android:name=".MyBroadcastReceiver"> <intent-filter> <action android:name="com.example.broadcast.MY_BROADCAST" /> </intent-filter> </receiver> ``` 其中,`MyBroadcastReceiver`是您自己定义的广播接收器类名。同时,您还需要在APP2的AndroidManifest.xml文件中添加以下代码: ```xml <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> ``` 这样,您就可以在APP1中发送广播,在APP2中接收并显示学生信息了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dl6655

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值