我可以通过包管理器获取代码中已安装应用程序的列表:
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/