得到包名称已安装的程序 [英] get Installed apps from package name

查看:87
本文介绍了得到包名称已安装的程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经试过了codeI粘贴下面..但是这给了我安装的每一个应用程序,但然后我需要检查每一个应用程序的是我或不带包名称...检查是否有code的地方,我可以通过包名到手机系统,以便它给了我所有已安装的应用程序基于该包的名字。

  PackageManager经理= getPackageManager();
        意图mainIntent =新的意图(Intent.ACTION_MAIN,NULL);
        mainIntent.addCategory(Intent.CATEGORY_DEFAULT);
        最后的名单,其中,ResolveInfo>应用程序= manager.queryIntentActivities(mainIntent,0);
        Collections.sort(应用程序,新的ResolveInfo.DisplayNameComparator(经理));
        ArrayList的<字符串> oArrInstalledHomeApps =新的ArrayList<字符串>();
        如果(应用程序!= NULL)
        {
            最终诠释计数= apps.size();

            的for(int i = 0; I<计数;我++)
            {
                ResolveInfo信息= apps.get(我);
                字符串strpackageName = info.activityInfo.applicationInfo.packageName;
如果(strpackageName.contains(com.ZZ.))
{
                oArrInstalledHomeApps.add(strpackageName);
}
            }
            返回oArrInstalledHomeApps;
        }
 

解决方案

即使世界一个干净的方式来做到这一点。

 最后PackageManager PM = getPackageManager();
        ArrayList的<字符串> oArrInstalledHomeApps =新的ArrayList<字符串>();
        //获取安装的应用程序列表。
        名单< ApplicationInfo>包= pm.getInstalledApplications(PackageManager.GET_META_DATA);
        对于(ApplicationInfo packageInfo:包)
        {
            Log.d(TAG,安装包:+ packageInfo.packageName);
            Log.d(TAG,启动活动:+ pm.getLaunchIntentForPackage(packageInfo.packageName));
            如果(packageInfo.packageName.contains(com.ZZ。))
            {
                oArrInstalledHomeApps.add(packageInfo.packageName);
            }
        }
        返回oArrInstalledHomeApps;
 

此<复制的无耻href="http://stackoverflow.com/questions/2695746/how-to-get-a-list-of-installed-android-applications-and-pick-one-to-run">link

i have tried the code i pasted below ..but that gives me every application installed but then i need to check each of the app is mine or not by checking with the package name...Is there a code to where i can pass the package name to the phone system so that it gives me all the apps installed based on that package name.

PackageManager manager = getPackageManager();
        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_DEFAULT);
        final List<ResolveInfo> apps = manager.queryIntentActivities(mainIntent, 0);
        Collections.sort(apps, new ResolveInfo.DisplayNameComparator(manager));
        ArrayList<String> oArrInstalledHomeApps = new ArrayList<String>();
        if (apps != null) 
        {
            final int count = apps.size();

            for (int i = 0; i < count; i++) 
            {
                ResolveInfo info = apps.get(i);
                String strpackageName = info.activityInfo.applicationInfo.packageName;
if(strpackageName.contains ("com.ZZ."))
{
                oArrInstalledHomeApps.add(strpackageName);
}
            }
            return oArrInstalledHomeApps;
        }

解决方案

Theres a cleaner way to do that.

 final PackageManager pm = getPackageManager();
        ArrayList<String> oArrInstalledHomeApps = new ArrayList<String>();
        // get a list of installed apps.
        List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
        for (ApplicationInfo packageInfo : packages)
        {
            Log.d(TAG, "Installed package :" + packageInfo.packageName);
            Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName));
            if (packageInfo.packageName.contains("com.ZZ."))
            {
                oArrInstalledHomeApps.add(packageInfo.packageName);
            }
        }
        return oArrInstalledHomeApps;

Copied shamelessly from this link

这篇关于得到包名称已安装的程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆