java - 检索手机上已安装应用程序所需功能的列表

标签 java android installed-applications

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

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

现在我想识别手机上当前已启用位置服务的所有已安装应用程序。我该如何执行此操作? 提前致谢

最佳答案

How can i do this?

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

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

关于java - 检索手机上已安装应用程序所需功能的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10262651/

相关文章:

android - 在 RecyclerView 中选择项目时,如何防止 notifyItemChanged() 消除链式 react ?

java - 在 Android 移动设备中从 JSON 获取数据会出现 fatalException main

android - 从Maven Eclipse转换为android Studio无法编译依赖项

windows - 检查是否安装了特定版本的程序

Java 拆分字符串正则表达式

java - 如何将数组文件发送到其他类

java - 使用不同时区的 UsernameToken 时间戳进行 WS-Secured header 验证 (WSS4j) 时出错

java - Spring Security OAuth2 撤销 token 不起作用

android - 如何从另一个应用程序启动应用程序?

android - 如何在没有安装 Facebook 应用程序的情况下分享到 Facebook 的链接?