以编程方式注册/取消注册活动的意图过滤器



假设我有一个应用程序X,它的Activity A是由X的manifest文件中定义的意图过滤器F启动的。

X是否有可能以编程方式注销/注册意图过滤器F为A?

是否有可能为另一个应用程序Y以编程方式注销/注册意图过滤器F为A,鉴于我可以访问应用程序X和Y,并可以设置任何所需的权限?

例如:如果两个应用程序需要相互通信,它们可以通过使用对象类型Binder而不是使用复杂的协议ICP来实现。

  1. 出于安全考虑,每个应用程序都应该使用相同的密钥签名,
  2. 每个应用程序应该始终使用相同的用户标识符运行。
  3. 申报所有相关活动或组成部分

不能通过编程方式注册/注销intent-filter。但是你可以用Broadcast Receiver来达到同样的目的。例如:

registerReceiver(this.broadcastReceiver, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"))

并取消注册,如:

if (this.broadcastReceiver != null) {
        unregisterReceiver(this.broadcastReceiver);
    }