跨应用(跨进程)发送广播和接收广播

跨应用发送和接收广播,与同应用下的情况差不多,只需要添加一个权限,以及配置一下receiver的android:process属性即可

发送广播的应用中:

Java代码  

  1. Intent intent = new Intent("info.zhegui.receiver.interprocess");
  2. sendBroadcast(intent);

注意要在manifest.xml添加接收广播的权限,这个权限是receiver自定义的

Java代码  

  1. <uses-permission android:name="info.zhegui.receiver.RECEIVE"/>

接收广播的应用中:

Java代码  

  1. public class MyReceiver extends BroadcastReceiver {
  2. private final String TAG = this.getClass().getName();
  3. @Override
  4. public void onReceive(Context content, Intent intent) {
  5. Log.i(TAG, "intent:" + intent);
  6. }
  7. }

在manifest.xml中添加自定义权限,以及配置receiver的几个属性

<permission android:name="info.zhegui.receiver.RECEIVE" />  

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <receiver
        android:name="info.zhegui.receiver.MyReceiver"
        android:exported="true"
        android:process=":remote" >
        <intent-filter>
            <action android:name="info.zhegui.receiver.interprocess" />
        </intent-filter>
    </receiver>
</application>  

需要注意的三个地方:

1,自定义权限

2,android:exported="true"

3,android:process=":remote" (有时候可以不要该属性)

动态注册也是可能的。

参考文档:

http://developer.android.com/guide/topics/manifest/receiver-element.html

http://developer.android.com/training/articles/security-tips.html

跨应用(跨进程)发送广播和接收广播

时间: 2024-08-04 20:37:06

跨应用(跨进程)发送广播和接收广播的相关文章

Android 静态广播和动态广播接收顺序

Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播  -  被广播接收器接收后,可被终止,无法往下继续传达.         典型代表:短信广播 普通广播  -  发送至每一个已经注册(订阅)的广播接收器,无法被终止. 典型代表:开机启动广播 2 广播接收器 - 用于订阅广播后接收广播 静态注册广播 - 在AndroidManifest.xml中设置,程序不用启动亦可接收. 典型代表:很多开机启动的APP,都是接收开机启动广播带起服务的. 动态注册广播 - 代码中注册广

使用WM_COPYDATA跨进程发送数据

进程之间通讯的几种方法: 在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯.常用的方法有 使用内存映射文件 通过共享内存DLL共享内存 使用SendMessage向另一进程发送WM_COPYDATA消息 比起前两种的复杂实现来,WM_COPYDATA消息无疑是一种经济实惠的一中方法.WM_COPYDATA消息的主要目的是允许在进程间传递只读数据.Windows在通过WM_COPYDATA消息传递期间,不提供继承同步方式.SDK文档推荐用户使用SendMessage函数,接受方在

Android中实现跨app之间数据的暴露与接收

例如一个小项目:实现单词本的添加单词等功能 功能:不同的方式实现跨app之间数据的暴露与接收 暴露端app:实现单词的添加(Word.Translate),增删改查: 接收端app:模糊查询,得到暴露端的数据. 暴露端主页及布局: 1.布局: 主页布局:ListView.TextView(empty) item布局:TextView(单词).TextView(翻译) 添加或修改单词的Dialog布局:EditText(hint="word").EditText(hint="t

[jQuery]$.get跨域提交不发送原因

使用 $.ajax({ url: "http://pastebin.com/embed_js.php?i=sy9gt3FR", dataType: "jsonp", success: function (data) { // ... } }); [jQuery]$.get跨域提交不发送原因,布布扣,bubuko.com

Android安全问题 抢先接收广播 - 内因篇之广播发送流程

导读:本文说明系统发送广播的部分流程,如何利用Intent查找到对应接收器.我们依然只关注接收器的排序问题 这篇文章主要是针对我前两篇文章 android安全问题(四) 抢先开机启动 - 结果篇 android安全问题(五) 抢先拦截短信 - 结果篇 现在给出第二步分的分析 下面就来看看发送广播的流程 Context中的sendBroadCast函数的实现是在ContextImpl中,和发送广播相关的有如下六个函数 void android.app.ContextImpl.sendBroadca

Andriod学习之发送及接收广播

1.使用标准广播 1.1 定义广播接收器 public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generated method stub String string=arg1.getStringExtra("data"); Toast.makeText(arg0, &qu

Linux系统下UDP发送和接收广播消息小例子

[cpp] view plaincopy // 发送端 #include <iostream> #include <stdio.h> #include <sys/socket.h> #include <unistd.h> #include <sys/types.h> #include <netdb.h> #include <netinet/in.h> #include <arpa/inet.h> #includ

Linux系统下UDP发送和接收广播

// 发送端   02.#include 03.#include 04.#include<sys/socket.h>05.#include 06.#include<sys/types.h>07.#include 08.#include<netinet/in.h>09.#include<arpa/inet.h>10.#include 11.   12.   13.using namespace std;   14.   15.int main()   16.{

BroadcastReceiver(接收广播)

Broadcast Receiver用于接收并处理广播通知(broadcast announcements).多数的广播是系统发起的,如地域变换.电量不足.来电来信等.程序也可以播放一个广播.程序可以有任意数量的 broadcast receivers来响应它觉得重要的通知.broadcast receiver可以通过多种方式通知用户:启动activity.使用NotificationManager.开启背景灯.振动设备.播放声音等,最 典型的是在状态栏显示一个图标,这样用户就可以点它打开看通知