6

我从 url(我的服务器)下载了 apk 文件并将其保存在 sdcard 中。如果用户从 sdcard 安装它,我想知道是否有任何应用程序安装成功或应用程序安装在设备中的通知。已安装的应用程序是否有任何回调

4

4 回答 4

14

试试这个代码:

protected boolean isAppInstalled(String packageName) {
        Intent mIntent = getPackageManager().getLaunchIntentForPackage(packageName);
        if (mIntent != null) {
            return true;
        }
        else {
            return false;
        }
    }

轻松获取应用程序包名:在 中搜索您的应用程序google play website,然后您将获取 id 参数(它是应用程序的包名)。示例:您将在 google play 上的 Youtube 应用程序上进行搜索,您会在此 url 中找到它:

https://play.google.com/store/apps/details?id=com.google.android.youtube&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5nb29nbGUuYW5kcm9pZC55b3V0dWJlIl0

包名是 id 参数,所以它是: com.google.android.youtube

然后当你想测试时,你将拥有:

String packageName = "com.google.android.youtube";
boolean isYoutubeInstalled = isAppInstalled(packageName);

加:如果你想得到你设备中所有已安装应用程序的列表,你可以在本教程中找到你的答案

于 2012-11-26T14:31:35.243 回答
1
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);

您将获得 Android 上所有已安装应用程序的列表。

于 2012-11-26T14:08:20.953 回答
1

使用它来检查是否安装了应用程序

PackageManager pm = context.getPackageManager();

        List<ApplicationInfo> list = pm.getInstalledApplications(0);

        for (int i = 0; i < list.size(); i++) {         
            if(list.get(i).packageName.equals("com.my package")){
                    //do what you want
                    }

        }
于 2012-11-26T14:09:46.453 回答
1

在 Youtube Player API 中,您可以访问YoutubeIntents类并使用isYoutubeInstalled来验证设备是否具有 Android 应用程序。

于 2016-06-09T13:04:40.750 回答