运行指定安装在手机中的应用程序

时间:2012-12-18 07:34:33

标签: android

我想创建一个具有功能的应用程序:当我点击按钮时,我安装的应用程序将运行(例如this app

我使用getInstalledApplications编写代码(按钮是aupeo),但不知道如何调用app,请帮帮我

aupeo.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            final PackageManager pm = getPackageManager();
            List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

            for (ApplicationInfo packageInfo : packages) {

                Intent intent = pm.getLaunchIntentForPackage(packageInfo.packageName);   
                if (intent != null)  {
                  intent.addCategory(Intent.CATEGORY_LAUNCHER);
                  startActivity(intent);  
                }          
                }


        }

    });

2 个答案:

答案 0 :(得分:0)

尝试检查包名是否包含您的应用程序包名称:

aupeo.setOnClickListener(new View.OnClickListener() {

 public void onClick(View v) {
  final PackageManager pm = getPackageManager();
  List<ApplicationInfo> packages = 
                  pm.getInstalledApplications(PackageManager.GET_META_DATA);

  for (ApplicationInfo packageInfo : packages) {
   if(packageInfo.packageName.toLowerCase().
                   contains("tunein".toLowerCase())){

     Intent intent = 
                pm.getLaunchIntentForPackage(packageInfo.packageName);   
      if (intent != null)  {
       intent.addCategory(Intent.CATEGORY_LAUNCHER);
       startActivity(intent);  
    }  
 }        
   }

 }

    });

答案 1 :(得分:0)

here描述了启动第三方应用的简单方法。示例中的代码:

final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName("your.package.name", 
                                           "your.package.name.your.Class");
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( intent);

如果您在意图中指定的应用程序在手机上不存在,我相信它会引发异常 - 请参阅ρяσѕρєяK的答案,以确定手机上是否存在该应用程序。