我可以通过包管理器在我的代码中获取已安装应用程序的列表:
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;
}
现在我想识别手机上当前启用了位置服务的所有已安装应用。我该怎么做? Thnx提前
答案 0 :(得分:1)
我该怎么做?
你做不到。 Android SDK无法让一个应用程序监视另一个应用程序使用LocationManager
。
您可以注册PASSIVE_PROVIDER
以查看任何人是否正在请求位置更新,但您无法将其绑定到特定应用程序。