以前总不想写博客,原因很简单——懒!今天突然醒悟,想用写博客的方式把自己学习中觉得有价值的东西记录下来,并且与大家分享,如有任何错误敬请指出,日后一定改正!
进入正题,最近在学习语音识别的相关知识,做到要实现启动系统现有的APP,通过上网查找,从以下文章中得到启发。
http://www.javaeye.com/topic/664966
轻松实现在本应用中调用其他的应用程序,但未能的获得 系统现有APP的应用程序名,然而这应用程序名又是我做语音启动时所需要的。
通过上网查找资料,终于得到了我想要的数据。
...
PackageManager pm;
...
...
Intent it =new Intent(Intent.ACTION_VIEW);
ComponentName componentName=new ComponentName(mApps.get(index).activityInfo.packageName,mApps.get(index).activityInfo.name);
it.setComponent(componentName);
startActivity(it);
CharSequence c = pm.getApplicationLabel(mApps.get(index).activityInfo.applicationInfo);//获得 点击的应用程序 名
Toast.LENGTH_LONG ).show();
Toast.makeText(showapp.this, c.toString(), Toast.LENGTH_LONG).show();
...
public void loadApps(){
Intent i=new Intent(Intent.ACTION_MAIN,null);
i.addCategory(Intent.CATEGORY_LAUNCHER);
mApps=getPackageManager().queryIntentActivities(i, 0);
pm = this.getPackageManager();
}
...
详细源代码参考 http://www.javaeye.com/topic/664966,在其基础上修改获得。