Intent对象的使用及.apk反编译
前三节主要学习了Intent对象的作用、属性以及不同Activity之间值的传递,这节将着重学习Intent对象的用法。在我的语音识别项目中,通过使用Inteng对象来启动应用内组件、系统应用程序以及第三方应用程序(如QQ、微信等)。
一、Intent对象开发方法
首先,我们还是先学习下Intent对象启动组件(应用)有哪几种方法:
1.利用Intent对象的Component属性
使用这种方法的前提知道组件的或第三方应用程序的包名、类名,来启动应用程序内组件、第三方应用程序。Intent的Component属性需要要接受一个ComponentName对象,一个基本ComponentName需要指定包名和类名,这可以唯一地确定一个组件类。基本格式:
ComponentName comp=new ComponentName(当前类.this,要启动的类.class);
intent.setComponent(comp);
ComponentName对象包括以下几种构造器:
a.ComponentName(String pkg,String cls):创建pkg所在包下的cls类所对应的组件(字符串形式)
b.ComponentName(Context pkg,String cls):创建pkg所在包下的cls类所对应的组件
c.ComponentName(Context pkg,Class<?>cls):创建pkg所在包下的cls类所对应的组件(上下文)
应用举例:
(1)intent启动自身组件
Intent intent=new Intent();
ComponentName comp=new ComponentName(PocketSphinxDemo.this,help.class );//使用第三种构造器
intent.setComponent(comp);
startActivity(intent);
注意:这里PocketSphinxDemo.this指定的是我们应用程序的包,help.class为包内将要启动的组件类。
(2)intent启动第三方应用程序