-1

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

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

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);  
                }          
                }


        }

    });
4

2 回答 2

0

此处介绍了一种启动第三方应用程序的简单方法。示例中的代码:

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 的答案,以了解手机上是否存在该应用程序。

于 2012-12-18T10:32:59.107 回答
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);  
    }  
 }        
   }

 }

    });
于 2012-12-18T07:47:33.700 回答