代码之家  ›  专栏  ›  技术社区  ›  Mrunal

如何获取在Android中以编程方式使用位置的应用程序列表?

  •  -1
  • Mrunal  · 技术社区  · 9 年前

    我正在Android OS上开发一个应用程序。

    我需要一个返回依赖位置服务/GPS的应用程序列表的方法

    1 回复  |  直到 9 年前
        1
  •  5
  •   Community CDub    8 年前

    您可以使用代码(来自 here )以获取设备上已安装应用的权限列表。然后搜索有关位置服务(如ACCESS_FINE_location)的所需权限。 您的代码如下:

    PackageManager pm = getPackageManager();
    List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
    for (ApplicationInfo applicationInfo : packages) {
        Log.d("test", "App: " + applicationInfo.name + " Package: " + applicationInfo.packageName);
        try {
            PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);
            //Get Permissions
            String[] requestedPermissions = packageInfo.requestedPermissions;
            if(requestedPermissions != null) {
                for (int i = 0; i < requestedPermissions.length; i++) {
                    Log.d("test", requestedPermissions[i]);
    
                    //////////////////////////////////////
                    //////////////////////////////////////
                    // Look for the desired permission here
                    //////////////////////////////////////
                    //////////////////////////////////////
                }
            }
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
    }
    

    要做到这一点,您需要在清单中填写以下内容:

    <uses-permission android:name="android.permission.GET_TASKS"/>
    
    推荐文章