Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查应用程序是否安装在设备上android代码_Java_Android - Fatal编程技术网

Java 检查应用程序是否安装在设备上android代码

Java 检查应用程序是否安装在设备上android代码,java,android,Java,Android,我从url(我的服务器)下载了apk文件,并将其保存在SD卡中。若用户从SD卡安装它,我想知道是否有任何通知应用程序已成功安装或应用程序已安装在设备中。安装的应用程序上有任何回调吗 final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); final List pkgAppsList = context.getPackageMa

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

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);

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

使用此列表检查是否已安装应用程序

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
                    }

        }
PackageManager pm=context.getPackageManager();
List List=pm.getInstalledApplication(0);
对于(inti=0;i
尝试以下代码:

protected boolean isAppInstalled(String packageName) {
        Intent mIntent = getPackageManager().getLaunchIntentForPackage(packageName);
        if (mIntent != null) {
            return true;
        }
        else {
            return false;
        }
    }
要轻松获取应用程序的软件包名称:只需在
google play网站
中搜索您的应用程序,然后您将获取id参数(它是应用程序的软件包名称)。例子: 您将在google play上搜索Youtube应用程序,并在以下url中找到:

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

然后,当您想要进行测试时,您只需:

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

PLUS:如果您想获取设备中所有已安装应用程序的列表,您可以在Youtube Player API中的此

中找到答案,您可以访问类并使用来验证设备是否有Android应用程序

我不知道包名,我将从服务器获取url并下载它并将其保存在SD卡中,我如何获取要检查的包名谢谢,我请求我的服务器url获取apk,对于这种情况,我如何获取包名,如果有任何方法可以从apk文件获取包名?您无法从apk文件获取它,安装后,您将从packageManager获得它。毫无疑问,您的帖子非常有用,但我收到了一个异常“java.lang.RuntimeException:Adding window failed”和“E/AndroidRuntime(7554):原因:android.os.TransactionTooLargeException 05-14 11:37:25.305:E/AndroidRuntime(7554):在android.os.BinderProxy.transact(本机方法)05-14 11:37:25.305:E/AndroidRuntime(7554):在android.view.iIndowSession$Stub$Proxy.add(iIndowSession.java:516)05-14 11:37:25.305:E/AndroidRuntime(7554):在android.view.ViewRootImpl.setView(ViewRootImpl.java:494)“为了解决这个问题,我得到了一个链接