如何在 Android 中获取以编程方式使用位置的应用程序列表?
How to get list of apps that use location programmatically in Android?
我正在 Android OS.
上开发应用
我需要一种方法 returns 依赖位置的应用列表 services/GPS
您可以使用代码(来自 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"/>
我正在 Android OS.
上开发应用我需要一种方法 returns 依赖位置的应用列表 services/GPS
您可以使用代码(来自 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"/>