要检索在手机上安装的应用程序所需要的功能列表 [英] To retrieve the list of installed application required features on the phone

查看:238
本文介绍了要检索在手机上安装的应用程序所需要的功能列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能够通过软件包管理器获取在我的code安装的应用程序的列表:

 公开的ArrayList< InstalledAppData> importInstalledAppsData(){
        ArrayList的< InstalledAppData> APPLIST =新的ArrayList< InstalledAppData>();
        软件包管理系统pkgManager = getApplicationContext()getPackageManager()。
        清单< ApplicationInfo>包= getInstalledApplicationsList(pkgManager);
        串DEVICEID = Util.getDeviceId(getApplicationContext());        对于(ApplicationInfo packageInfo:包){
        字符串的packageName = packageInfo.packageName;
        串的appName =;
        字符串appFile = packageInfo.sourceDir;
        长installTime =新的文件(appFile).lastModified();
        字符串状态=S;
        如果((packageInfo.flags&放大器; ApplicationInfo.FLAG_SYSTEM)== 1){
                的appName =(字符串)pkgManager.getApplicationLabel(packageInfo);
            }
            其他{
            的appName =(字符串)pkgManager.getApplicationLabel(packageInfo);
        }
        InstalledAppData数据=新InstalledAppData(DEVICEID,的packageName,的appName,installTime,地位);
            appList.add(数据);
        }
        返回APPLIST;
    }

现在我想找出当前具有位置服务我enabled.How能做到这一点的手机上的所有安装的应用程序?
日Thnx提前


解决方案

  

我怎样才能做到这一点?


您不能。在Android SDK有没有办法为一个应用程序到另一个应用程序使用的谍的LocationManager

您可以注册 PASSIVE_PROVIDER 来看看的任何的恰好是请求位置更新,但你不能配合下来到一个特定的应用程序

I am able to fetch the list of the installed application in my code by package manager:

public ArrayList<InstalledAppData> importInstalledAppsData(){
        ArrayList<InstalledAppData> appList=new ArrayList<InstalledAppData>();
        PackageManager pkgManager=getApplicationContext().getPackageManager();
        List<ApplicationInfo> packages=getInstalledApplicationsList(pkgManager);
        String deviceId=Util.getDeviceId(getApplicationContext());

        for (ApplicationInfo packageInfo : packages) {
        String packageName=packageInfo.packageName;
        String appName="";
        String appFile = packageInfo.sourceDir;
        long installTime = new File(appFile).lastModified();
        String status="s";
        if ((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
                appName = (String) pkgManager.getApplicationLabel(packageInfo);
            }
            else {
            appName = (String) pkgManager.getApplicationLabel(packageInfo);
        }                
        InstalledAppData data=new InstalledAppData(deviceId, packageName, appName, installTime, status);
            appList.add(data);


        }
        return appList;
    }

Now i want to identify all installed apps on the phone that currently have location services enabled.How can i do this? Thnx in advance

解决方案

How can i do this?

You can't. The Android SDK has no means for one application to spy on another application's use of LocationManager.

You can register for the PASSIVE_PROVIDER to see if anyone happens to be requesting location updates, but you cannot tie it down to a specific application.

这篇关于要检索在手机上安装的应用程序所需要的功能列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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