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

时间:2016-03-15 19:53:45

标签: android location settings locationmanager

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

我需要一种方法来返回依赖于位置服务/ GPS

的应用列表

1 个答案:

答案 0 :(得分:5)

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