马上注册,解锁更多高级玩法
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
×
 
1 Intent参数Intent的参数和flags较多,本文为方便起见,分为3种类型参数,常用参数,Extra参数,Flags参数。 1.1 常用参数- -a <ACTION>: 指定Intent action, 实现原理Intent.setAction();
 - -n <COMPONENT>: 指定组件名,格式为{包名}/.{主Activity名},实现原理Intent.setComponent();
 - -d <DATA_URI>: 指定Intent data URI
 - -t <MIME_TYPE>: 指定Intent MIME Type
 - -c <CATEGORY> [-c <CATEGORY>] ...]:指定Intent category,实现原理Intent.addCategory()
 - -p <PACKAGE>: 指定包名,实现原理Intent.setPackage();
 - -f <FLAGS>: 添加flags,实现原理Intent.setFlags(int ),紧接着的参数必须是int型;
 
 
 实例 [Shell] 纯文本查看 复制代码 am start -a android.intent.action.VIEWam start -n com.gityuan.app/.MainActivityam start -d content://contacts/people/1
am start -t image/pngam start -c android.intent.category.APP_CONTACTS  
 
1.2 Extra参数(1). 基本类型 参数  | -e/-es  | -esn  | -ez  | -ei  | -el  | -ef  | -eu  | -ecn  |  类型  | String  | (String)null  | boolean  | int  | long  | float  | uri  | component  |  
  
比如参数es是Extra String首字母简称,实例: [Shell] 纯文本查看 复制代码 am start -n com.gityuan.app/.MainActivity -es website gityuan.com  
 
此处-es website gityuan.com,等价于Intent.putExtra(“website”, “gityuan.com”); (2). 数组类型 参数  | -esa  | -eia  | -ela  | -efa  |  数组类型  | String[]  | int[]  | long[]  | float[]  |  
  
比如参数eia,是Extra int array首字母简称,多个value值之间以逗号隔开,实例: [Shell] 纯文本查看 复制代码 am start -n com.gityuan.app/.MainActivity -ela weekday 1,2,3,4,5  
 
此处-ela weekday 1,2,3,4,5,等价于Intent.putExtra(“weekday”, new int[]{1,2,3,4,5}); (3). ArrayList类型 参数  | -esal  | -eial  | -elal  | -efal  |  List类型  | String  | int  | long  | float  |  
  
比如参数efal,是Extra float Array List首字母简称,多个value值之间以逗号隔开,实例: [Shell] 纯文本查看 复制代码 am start -n com.gityuan.app/.MainActivity -efal nums 1.2,2.2  
 
此处-efal nums 1.2,2.2,等价于先构造ArrayList变量,再通过putExtra放入第二个参数。 1.3 Flags参数在参数类型1中,提到有-f <FLAGS>,是通过Intent.setFlags(int )方法,来设置Intent的flags.本小节也是关于flags,是通过Intent.addFlags(int )方法。 如下所示,所有的flags参数。 [--grant-read-uri-permission]  
[--grant-write-uri-permission] 
[--grant-persistable-uri-permission]  
[--grant-prefix-uri-permission] 
[--debug-log-resolution] 
[--exclude-stopped-packages] 
 [--include-stopped-packages] 
[--activity-brought-to-front] 
 [--activity-clear-top] 
[--activity-clear-when-task-reset]  
[--activity-exclude-from-recents] 
[--activity-launched-from-history] 
 [--activity-multiple-task] 
[--activity-no-animation] 
 [--activity-no-history] 
[--activity-no-user-action]  
[--activity-previous-is-top] 
[--activity-reorder-to-front]  
[--activity-reset-task-if-needed] 
[--activity-single-top]  
[--activity-clear-task] 
[--activity-task-on-home] 
[--receiver-registered-only] 
 [--receiver-replace-pending] 
 
例如,发送action=”broadcast.demo”的广播,并且对于forceStopPackage()的应用不允许接收该广播,命令如下: [Shell] 纯文本查看 复制代码 am broadcast -a broadcast.demo --exclude-stopped-packages  
 
 
 
 
 
 
 
 |