查找意图

受群友邀请 写一下如何查找这些所谓的意图

可以用tasker的发送意图进行操作

每一个app 都一定会有一个androidmanifest.xml文件
把apk后缀换成zip解压就可以看见

不过呢 看起来是乱码的 例如这样

这是因为app都会混淆的

一般要反编译 市面上有很多反编译的软件 我就不一一细说了
不过由于我们是找意图 所以可以不用反编译

利用android上的root explorer(re)文件浏览器就可以(这也是一大神器)

打开re 点击你想要找意图的apk文件 re弹出对话框 点击查看 就可以帮你打开apk里面的内容

点击里面的androidmanifest.xml文件 打开就不乱码了

你可以复制里面的代码 黏贴到pc的文本编辑器 例如notepad++之类的 打开会好看很多

今天的例子比较简单 我找了"讯飞语音+"这个apk

经过一番复制黏贴后 我们得到了讯飞的androidmanifest内容

接下来 我们只需要关注几个关键字

"<intent-filter>********</intent-filter>"

这个intent-filter意思为 意图过滤器 可以简单理解为字符串匹配器

里面都是一些开发者自定义的规则

首先 找到</intent-filter>之后我们有几个地方要关注的

第一个是Activity 如果如上所示 intent-filter被一个Activity包裹着
这个Activity一般理解为界面 就是你打开app之后能看见东西 具体是什么我们先不管

这个Activity表明如果我们在tasker用的话需要

在-发送意图-目标栏: 选择Activity

同样的道理

如果intent-filter被<Service 包裹

我们就要在目标栏选择Service如果被receiver包裹 就要选择Broadcast receiver

这样我们的意图才能正确工作

这里要说一下 通常Service对我们用户来说没什么用 我们一般关注Activity 和receiver这两个比较有用

还是如上图 一个Activity里面可以有多个"<intent-filter>********</intent-filter>" 意思是这个Activity只要和里面其中一条"<intent-filter>********</intent-filter>"里面的规则相同就可以打开这个Activity

一般"<intent-filter>********</intent-filter>"里面的内容会包含几个关键字 我们来认识一下

"<action name"这个关键字 后面跟了一串字符串 这个字符串非常关键,

用来填入tasker发送意图界面的操作栏

"<category name="
这个关键字后面跟了一串字符串 也是非常关键 一般来说 会有这个字符串"android.intent.category.DEFAULT"

没有这个字符串的话 这个Activity / receiver都不能用于tasker!!!

另外如果一个"<intent-filter>********</intent-filter>"
里面有多个
"<category name="

必须在tasker的猫栏(照例吐槽 cat栏 意为约束)有多少个就写多少个
不过tasker图形界面的限制是两个 应该可以有其他方法加多几个.....

目前我的做法是 如果这个"<intent-filter>********</intent-filter>"
里面的category太多 tasker写不完的话 选择其他少一点category的
"<intent-filter>********</intent-filter>"

,当然 有一些Activity的"<intent-filter>********</intent-filter>" 可能只有1个或者很少 而且里面都非常多category .
..我就没什么办法了 不过一般来说没有那么变态的Activity会用到那么多category"

<data"这个关键字比较复杂 如果你看见Activity用到了这个关键字 并且你很想要要触发这个Activity的话 就搜索关键字"intent-filter的匹配规则" 很多blog写的比较详细

比如我推荐一个 http://blog.csdn.net/iispring/article/details/48481793

一般很少Activity会用到<data标签
但是也有可能有的 例如这个

这里有几个关键字如果intent-filter里面有
"category name="android.intent.category.LAUNCHER"

就表示这个Activity是入口Activity 也就是说你在桌面点击app图标 看见第一个界面就是这个Activity了

如果我要用tasker启动这个Activity 一般先看看有没有好用的intent-filter
上图里面 第一个intent-filter最多规则 又有action 又有category 又有data

第二个intent-filter规则比较少 可以用第二个,不过第二个是给桌面用的 如果我们要用第二个intent-filter 需要在tasker 发送意图的包名栏输入讯飞语音+的包名

包名在androidmanifest的第一行就可以看见

如果没有那么多intent-filter可以选择

比如只有第一个intent-filter的话 tasker必须要这样写
操作栏 android.intent.action.VIEW

猫栏 选DEFAULT
数据栏 speech://123.com
(补充一下 数据栏这样写是因为这个intent-filter有这个标签

<data scheme="speechcloud"></data>

数据栏输入的数据叫URL格式 例如你浏览的这个网址 就是标准的URL格式

http://tieba.baidu.com/f?kw=tasker&ie=utf-8&tp=0#

data中的scheme意思为框架 上面这个网址的框架就是http

data中这样声明标签 意味着我们的意图要包含一个URL开头框架是"speechcloud"

后面怎么样就随意了 所以我们在数据栏中写
"speech://123.com"
也可以这样写
"speech://123"
或者这样
"speech://fuck"
另外如果data里面有"android:host"关键字的话

例如<data android:scheme="abc" android:host="tieba.baidu.com" />

就要输入abc://tieba.baidu.com或者abc://tieba.baidu.com/bbcasdwqsdq

都可以 如果有更多URL属性指明就要有多少属性 就输入多少 这个涉及到android基础 百度google"android URL"就有资料可以看了)

目标栏 Activity

运行!!!!!

成功启动

按照上面的思路 我们找找别的


这个Activity的名字挺有趣的 就试试第一组intent-filter吧

第一组的action比较大众化 可能有很多个程序都注册了这action
非常简单

操作栏 android.intent.action.SEARCH_LONG_PRESS
猫栏DEFAULT
目标 Activity

执行


可以看见 的确是很多app都注册了这个action

执行之后系统会叫你选择哪个app响应这个意图

这个intent-filter不是太理想 我们换第二组

操作栏 com.iflytek.speech.action.voiceinput
其余不变

执行

完成了 原来这个Activity是这样用的 发送这个意图就可以打开这个界面

最后我想说发送意图的使用限制比较多并不是每一个intent-filter你都可以找到的还有很多隐藏在代码里面 这些intent你需要反编译整个app 而且非常难读 tasker的限制也是比较多的 例如对于category 如果intent-filter声明了多个 tasker无法全部匹配也是不能触发这个意图的 而且 很多Activity你都不知道他是干嘛的 除非官方公布这个Activity 这个时候只能一个一个试尝试,或者英语比较好的话 也能望文生义 这篇文章其实属于android很基础的开发知识 并不难 而且你看完这个再去看其他intent知识的话会更容易理解 我希望看到你们能把试出的功能发到贴吧的帖子上 让其他人也能用上这个意图 大家共同进步

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,479评论 25 707
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,357评论 0 17
  • 哎呀呀 ,马上就要面临找工作了,媛媛心里紧张呀. 作为一个即将毕业的Android程序媛,开始面临找工作了,...
    仇诺伊阅读 4,534评论 7 59
  • 百年前,人们躺在床上吸鸦片。百年后,人们躺在床上玩手机。其姿势惊人的相似。现代人会不会都有过这样的状态,没有勇气放...
    职业规划咨询师阅读 628评论 2 5
  • 不成公,又何妨。 虽然明知道进不去面了,毕竟竞争太大了,但是面试名单出来的时候还是紧张了一小下。和最低进面试成绩1...
    冰镇夏天阅读 201评论 6 1