首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以编程方式检查应用程序是否已安装在Android中?

如何以编程方式检查应用程序是否已安装在Android中?
EN

Stack Overflow用户
提问于 2012-07-09 17:19:06
回答 16查看 177.4K关注 0票数 167

我们已经以编程方式安装了应用程序。

automatically.

  • Otherwise
  1. 如果应用程序已安装在设备中,则打开该应用程序并安装特定的应用程序。

指引我。我没有头绪。谢谢。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2012-07-09 17:25:20

试试这个:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Add respective layout
        setContentView(R.layout.main_activity);

        // Use package name which we want to check
        boolean isAppInstalled = appInstalledOrNot("com.check.application");  
        
        if(isAppInstalled) {
            //This intent will help you to launch if the package is already installed
            Intent LaunchIntent = getPackageManager()
                .getLaunchIntentForPackage("com.check.application");
            startActivity(LaunchIntent);
                    
            Log.i("SampleLog", "Application is already installed.");          
        } else {
            // Do whatever we want to do if application not installed
            // For example, Redirect to play store

            Log.i("SampleLog", "Application is not currently installed.");
        }
    }

    private boolean appInstalledOrNot(String uri) {
        PackageManager pm = getPackageManager();
        try {
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
        }

        return false;
    }

}
票数 337
EN

Stack Overflow用户

发布于 2015-01-28 00:27:08

比公认的答案更简洁的解决方案(基于this question):

代码语言:javascript
复制
public static boolean isAppInstalled(Context context, String packageName) {
    try {
        context.getPackageManager().getApplicationInfo(packageName, 0);
        return true;
    }
    catch (PackageManager.NameNotFoundException e) {
        return false;
    }
}

我选择将其作为静态实用程序放在助手类中。使用示例:

代码语言:javascript
复制
boolean whatsappFound = AndroidUtils.isAppInstalled(context, "com.whatsapp");

This answer展示了如何在应用程序丢失的情况下从Play Store获取应用程序,尽管在没有Play Store的设备上需要小心。

票数 70
EN

Stack Overflow用户

发布于 2013-07-10 11:10:55

上面的代码对我不起作用。下面的方法起作用了。

使用适当的信息创建一个Intent对象,然后使用以下函数检查Intent是否可调用:

代码语言:javascript
复制
private boolean isCallable(Intent intent) {  
        List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent,   
        PackageManager.MATCH_DEFAULT_ONLY);  
        return list.size() > 0;  
}
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11392183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档