Android 如何使用名称中的特定字符串启动另一个应用程序
我需要按照以下顺序启动我的另一个应用程序:Android 如何使用名称中的特定字符串启动另一个应用程序,android,android-intent,Android,Android Intent,我需要按照以下顺序启动我的另一个应用程序: 检查设备上所有已安装的应用程序,找到名称上有特定字符串的应用程序,并列出它们,以便选择和启动它们(例如检查名称中包含“计时器”的所有应用程序,如“完美计时器”、“您的计时器”等) 2.如果没有可用的应用程序,请启动Google Play并搜索名称(如“计时器”)。您需要使用PackageManager获取所有已安装的应用程序名称,并使用getLaunchIntentForPackage启动包含特定字符串的应用程序: PackageManager pm
2.如果没有可用的应用程序,请启动Google Play并搜索名称(如“计时器”)。您需要使用
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);
}
}
PackageManager pm=getPackageManager();
列表包=
pm.GetInstalledApplication(PackageManager.GET_元数据);
对于(ApplicationInfo packageInfo:packages){
if(packageInfo.packageName.toLowerCase()。
包含(““完美计时器”.toLowerCase())){
意向意向=
pm.getLaunchIntentForPackage(packageInfo.packageName);
if(intent!=null){
intent.addCategory(intent.CATEGORY_启动器);
星触觉(意向);
}
}否则{
//在此处启动google play应用程序
字符串apppackname=“com.example.appname”;
Intent intentapp=新(Intent.ACTION\u视图,
解析market://search?q=“+apppackname”);
起始触觉(intentapp);
}
}
首先,您需要阅读所有已安装的应用程序,请在此处阅读更多信息
找到desire应用程序后,您可以对该应用程序进行简单的fire intent操作,或者像这样使用filter search打开市场
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("market://search?q=com.amazon.kindle"));
startActivity(i);
您可能可以使用
Intent
过滤器选择器来实现这一点,但我不知道如何使用。此功能在框架中已经可用。通过使用特定的Intent:应用程序将在存在时启动,或者用户将重定向到playstorr。对于分组类似的应用程序,请使用Intent过滤器