编写一个两个APP,APP1发送广播消息,APP2接收广播并显示 ,AndroidManifest.xml需要修改吗
时间: 2024-01-26 09:01:48 浏览: 85
是的,需要在AndroidManifest.xml中对APP2进行配置,使其能够接收APP1发送的广播消息。
首先,在APP2的AndroidManifest.xml文件中添加一个接收器(receiver)元素,指定接收的广播消息类型和处理接收到广播的类,示例如下:
```xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app2">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.app1.ACTION_SEND_MESSAGE" />
</intent-filter>
</receiver>
</application>
</manifest>
```
上面的示例中,我们在APP2的AndroidManifest.xml文件中添加了一个receiver元素,指定了接收的广播消息类型为“com.example.app1.ACTION_SEND_MESSAGE”,并指定了处理接收到广播的类为“MyBroadcastReceiver”。
然后,在APP2中创建一个继承自BroadcastReceiver的类MyBroadcastReceiver,用来处理接收到的广播消息,示例如下:
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 处理接收到的广播消息
if(intent.getAction().equals("com.example.app1.ACTION_SEND_MESSAGE")){
String message = intent.getStringExtra("message");
// 显示接收到的消息
Toast.makeText(context, "Received message: " + message, Toast.LENGTH_SHORT).show();
}
}
}
```
最后,在APP1中发送广播消息,示例如下:
```java
Intent intent = new Intent();
intent.setAction("com.example.app1.ACTION_SEND_MESSAGE");
intent.putExtra("message", "Hello, App2!");
sendBroadcast(intent);
```
上面的示例中,我们创建了一个Intent对象,指定了要发送的广播消息类型为“com.example.app1.ACTION_SEND_MESSAGE”,并通过putExtra方法添加了一个名为“message”的字符串类型参数,然后调用sendBroadcast方法发送广播消息。
这样,当APP1发送广播消息时,APP2就能够接收到并显示接收到的消息了。
阅读全文