我正在制作一个特殊的启动器:此启动器会在平板电脑中显示一些确定的应用程序。
例如(数独):
button_sudoku.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent();
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage("com.coolandroidappzfree.freesudoku");
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
}
});
但想象一下,如果应用程序com.coolandroidappzfree.freesudoku不在平板电脑上?所以app崩溃了!
我想先验证应用是否在平板电脑上,点击后,如果没有,请安装应用。
有可能吗?
由于
答案 0 :(得分:0)
我找到了解决方案。 如果安装在设备中,此功能将启动appPackageName,否则启动PlayStore:
public static boolean launchPackage(Context context, String appPackageName){
List<ApplicationInfo> packages;
PackageManager pm;
pm = context.getPackageManager();
packages = pm.getInstalledApplications(0);
for (ApplicationInfo packageInfo : packages)
{
if(packageInfo.packageName.equals(appPackageName))
{
Intent i = new Intent();
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PackageManager manager = context.getPackageManager();
i = manager.getLaunchIntentForPackage(appPackageName);
i.addCategory(Intent.CATEGORY_LAUNCHER);
context.startActivity(i);
return true;
}
}
Intent i2 = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName));
i2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i2);
return false;
}