【问题标题】:How to get list of apps that use location programmatically in Android?如何在Android中以编程方式获取使用位置的应用程序列表?
【发布时间】:2016-03-15 19:53:45
【问题描述】:

我正在开发 Android 操作系统上的应用。

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

【问题讨论】:

  • 请详细解释“依赖定位服务/GPS 的应用”是什么意思。

标签: android location settings locationmanager


【解决方案1】:

您可以使用代码(来自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"/>

【讨论】:

  • 这太棒了。是否还可以找出授予特定权限的应用列表?
  • @Mrunal 这就是我相信上面的代码正在做的事情。您拥有应用程序及其权限的列表,因此您可以根据需要对其进行过滤。我猜你可以将答案标记为已接受。
猜你喜欢
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-10
  • 2023-02-02
  • 2012-08-02
相关资源
最近更新 更多