我想创建一个具有功能的应用程序:当我点击按钮时,我安装的应用程序将运行(例如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);
}
}
}
});
答案 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的答案,以确定手机上是否存在该应用程序。