0

我可以通过包管理器在我的代码中获取已安装应用程序的列表:

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;
    }

现在我想识别手机上当前启用了定位服务的所有已安装应用程序。我该怎么做?提前谢谢

4

1 回答 1

1

我怎样才能做到这一点?

你不能。Android SDK 无法让一个应用程序监视另一个应用程序对LocationManager.

您可以注册PASSIVE_PROVIDER以查看是否有人碰巧请求位置更新,但您不能将其绑定到特定应用程序。

于 2012-04-21T20:23:17.363 回答