首页 > 解决方案 > `Intent.setPackage()` 的作用是什么

问题描述

的作用是什么Intent.setPackage(String packageName),因为intent会通过or的componentName设置来寻找匹配,所以即使你设置了错误的packageName也能找到匹配。Intent.setClassName(Context packageContext,String className)Intent.setComponent(ComponentName component)Intent.setPackage(String packageName)

标签: androidandroid-intent

解决方案


setClassName()以您要运行的确切包名称和确切组件为目标。例如,如果您想使用 Gmail 应用程序发送电子邮件,使用它来运行您想要运行的确切活动(组件)。

setPackage()针对一个确切的应用程序,并为您提供可以处理您的意图的所有组件。

如果您填写这两个,它将针对所有应用程序和组件,这在某些情况下并不理想,例如您只想针对 WhatApp 共享内容。如果您想在任何社交媒体应用程序上分享该内容,请忽略这两个并坚持使用actiondata和 ... 字段。


推荐阅读