You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android接收应用如何获取Intent发起方,仅响应白名单应用的Intent?

获取Intent发起来源并限制白名单应用的方案

Android是可以追踪Intent发起来源并实现白名单限制的,以下是几种可行的方法:

  • 调用getCallingPackage():在接收Intent的组件(如Activity、Service)中,使用getCallingPackage()可直接获取发起Intent的应用包名。但该方法仅对通过startActivityForResult()、bindService()这类需要交互的方式发起的Intent有效;普通startActivity()调用可能返回null。
  • 签名校验:如果getCallingPackage()无法覆盖场景,可通过校验发起应用的签名来确认合法性。借助PackageManager获取对应包名的签名哈希值,与白名单应用的签名哈希比对,仅允许匹配的应用触发你的Intent。
  • 自定义参数配合验证:若发起方属于可控范围,可要求其在Intent中携带自定义的包名字段,接收方拿到后先核对是否在白名单内。但这种方式易被伪造,需结合签名校验提升安全性。
  • 广播Intent的特殊处理:若接收的是广播Intent,可在onReceive()中校验发起方包名,或在注册广播时指定权限,仅让拥有对应权限的应用能发送该广播。

额外注意事项:

  • 优先使用显式Intent(直接指定目标包名/组件),减少隐式Intent带来的安全风险;
  • 不要设置无权限限制的全局IntentFilter,防止恶意应用随意触发。

内容的提问来源于stack exchange,提问作者zajic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:31:02