假设我有一个应用程序X,它的Activity A是由X的manifest文件中定义的意图过滤器F启动的。
X是否有可能以编程方式注销/注册意图过滤器F为A?
是否有可能为另一个应用程序Y以编程方式注销/注册意图过滤器F为A,鉴于我可以访问应用程序X和Y,并可以设置任何所需的权限?
例如:如果两个应用程序需要相互通信,它们可以通过使用对象类型Binder而不是使用复杂的协议ICP来实现。
- 出于安全考虑,每个应用程序都应该使用相同的密钥签名,
- 每个应用程序应该始终使用相同的用户标识符运行。
- 申报所有相关活动或组成部分
不能通过编程方式注册/注销intent-filter
。但是你可以用Broadcast Receiver
来达到同样的目的。例如:
registerReceiver(this.broadcastReceiver, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"))
并取消注册,如:
if (this.broadcastReceiver != null) {
unregisterReceiver(this.broadcastReceiver);
}