识别应用程序是否存在,如果不存在则进入商店

j1m*_*g88 8 android

有点不好意思.

我想知道的是,如果一个应用程序不存在于设备上,它是否可以进入游戏商店下载它.我知道我需要把这段代码放进去

Intent i = getPackageManager().getLaunchIntentForPackage("com.package.address");
    startActivity(i);
Run Code Online (Sandbox Code Playgroud)

但如果不存在,我可以让它去Play商店

Sun*_*hra 9

您可以使用以下某个功能检查是否已安装该应用程序.

功能1

private boolean isAppInstalled(String packageName) {
    PackageManager pm = getPackageManager();
    boolean installed = false;
    try {
        pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
        installed = true;
    } catch (PackageManager.NameNotFoundException e) {
        installed = false;
    }
    return installed;
}
Run Code Online (Sandbox Code Playgroud)

功能2

public boolean isAppInstalled(String targetPackage){
    List<ApplicationInfo> packages;
    PackageManager pm = getPackageManager();        
    packages = pm.getInstalledApplications(0);
    for (ApplicationInfo packageInfo : packages) {
        if(packageInfo.packageName.equals(targetPackage)) return true;
    }        
    return false;
}
Run Code Online (Sandbox Code Playgroud)

用法

if(isAppInstalled("com.package.name")){
    //Your Code
}
else{
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.package.name")));
}
Run Code Online (Sandbox Code Playgroud)