编写一个两个APP,APP1发送广播自己的学号+姓名,APP2接收广播并显示的工程代码
时间: 2024-02-19 08:58:41 浏览: 42
首先,我们需要定义一个广播的Action,以便APP1发送广播时使用。我们可以在APP1的AndroidManifest.xml文件里添加如下代码:
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.broadcast.MY_BROADCAST"/>
</intent-filter>
</receiver>
```
然后,我们需要编写一个MyBroadcastReceiver类,用于接收广播并处理广播内容。代码如下:
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 获取广播中传递的学号和姓名
String studentId = intent.getStringExtra("student_id");
String name = intent.getStringExtra("name");
// 在控制台输出学号和姓名
Log.d("MyBroadcastReceiver", "Received broadcast: " + studentId + ", " + name);
}
}
```
最后,我们需要在APP1中编写发送广播的代码。在需要发送广播的地方,加入以下代码:
```java
Intent intent = new Intent();
intent.setAction("com.example.broadcast.MY_BROADCAST");
intent.putExtra("student_id", "123456");
intent.putExtra("name", "John Smith");
sendBroadcast(intent);
```
在APP2中,我们需要编写一个BroadcastReceiver类,用于接收并处理APP1发送的广播。代码如下:
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 获取广播中传递的学号和姓名
String studentId = intent.getStringExtra("student_id");
String name = intent.getStringExtra("name");
// 在界面上显示学号和姓名
Toast.makeText(context, "Received broadcast: " + studentId + ", " + name, Toast.LENGTH_SHORT).show();
}
}
```
然后,在APP2的AndroidManifest.xml文件中添加以下代码,以便APP2可以接收来自APP1的广播:
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.broadcast.MY_BROADCAST"/>
</intent-filter>
</receiver>
```
最后,我们需要在APP2中启动MyBroadcastReceiver类,代码如下:
```java
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.example.broadcast.MY_BROADCAST");
registerReceiver(receiver, intentFilter);
```
这样,当APP1发送广播时,APP2就会接收到广播并显示学号和姓名。