如何安全的使用隐式intent

@SuppressLint(“UnsafeImplicitIntentLaunch”)是什么
@SuppressLint("UnsafeImplicitIntentLaunch") 是 Android Lint 给你的警告抑制注解,出现在你写 隐式 Intent 的地方时,Lint 会在 IDE 里提示:

Unsafe implicit intent launch: Intent could be intercepted or hijacked.


✅ 什么是 “UnsafeImplicitIntentLaunch”

  • 你创建了一个 隐式 Intent(没有 setComponent / setClass / setPackage)。
  • Android 系统会在 所有 已安装且 exported=true 的组件里做匹配。
  • 恶意 App 可以提前注册同样的 <intent-filter> 来 拦截 你的 Intent,导致:
  • 数据被窃听或篡改
  • 用户被引导到钓鱼界面
  • 服务 / 广播被冒牌实现

✅ 官方推荐的 3 种安全写法(不用加注解)

方案 代码示例 场景
显式 Intent(最简单) new Intent(this, TargetActivity.class) 只在 本 App 内部跳转
给隐式 Intent 加 package intent.setPackage("com.xxx.yyy") 明确指定 某个 App
Resolve & 白名单 先 PackageManager.resolveActivity(),再比对 签名 / 包名 后才启动 调用 第三方 App,但又怕劫持


✅ 为什么有人加 @SuppressLint

  • 临时绕过:开发者懒得改或确定环境可控(比如内部测试 App)。
  • 误报:某些场景确实安全,但 Lint 无法识别。

✅ 一句话总结

@SuppressLint("UnsafeImplicitIntentLaunch") 只是“掩耳盗铃”;真正安全的是:用显式 Intent 或 setPackage() 明确目标。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇