如何使用名称中的特定字符串启动另一个应用程序

时间:2013-01-01 19:01:45

标签: android android-intent

我需要按照以下顺序从我的应用程序启动另一个应用程序:

  1. 检查设备上所有已安装的应用程序,找到名称上包含特定字符串的应用程序并列出它们,以便选择并启动它们(例如检查名称中包含“计时器”的所有应用程序,例如“完美”计时器“,”你的计时器“,等等。”
  2. 2.如果没有可用的应用程序,请启动Google Play并搜索名称(例如“计时器”)。

2 个答案:

答案 0 :(得分:1)

您需要使用PackageManager获取所有已安装的应用程序名称,并使用getLaunchIntentForPackage启动应用程序(如果它包含特定字符串):

PackageManager pm = getPackageManager();
  List<ApplicationInfo> packages = 
                  pm.getInstalledApplications(PackageManager.GET_META_DATA);

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

     Intent intent = 
                pm.getLaunchIntentForPackage(packageInfo.packageName);   
      if (intent != null)  {
         intent.addCategory(Intent.CATEGORY_LAUNCHER);
         startActivity(intent);  
      }  
  } else{
            // Launch google play app here
            String apppackname = "com.example.appname";
             Intent intentapp=new (Intent.ACTION_VIEW, 
                Uri.parse("market://search?q="+apppackname)));
             startActivity(intentapp);
      }       
}

答案 1 :(得分:0)

首先,您需要阅读所有已安装的应用,请阅读http://www.androidsnippets.com/get-installed-applications-with-name-package-name-version-and-icon

在找到欲望的应用程序后,您可以简单地对该应用程序进行表达,或者使用像这样的过滤搜索打开市场

   Intent i = new Intent(Intent.ACTION_VIEW);
   i.setData(Uri.parse("market://search?q=com.amazon.kindle"));
   startActivity(i);