例如,谷歌市场上有一个名为“Lookout Security & Antivirus”的流行应用程序。
此应用程序可以显示所有访问您的位置、联系人、短信和彩信数据的应用程序。
我想知道如何在 Android 中做到这一点的总体思路(我不是要源代码!)
这个应用程序不需要root权限来做所有这些,所以我相信Android SDK实际上提供了这些功能?
例如,谷歌市场上有一个名为“Lookout Security & Antivirus”的流行应用程序。
此应用程序可以显示所有访问您的位置、联系人、短信和彩信数据的应用程序。
我想知道如何在 Android 中做到这一点的总体思路(我不是要源代码!)
这个应用程序不需要root权限来做所有这些,所以我相信Android SDK实际上提供了这些功能?
因此,有一些称为PackageManager的东西可以为您提供有关PackageInfo的信息,您可以从中探索更多信息并提取 PERMISSION_GRANTED。
我的想法是获取所有已安装软件包(应用程序)的列表,并检查他们在清单中注册的权限。
这可以使用PackageManager
-class 来完成,命名为getInstalledPackages()
-method,与GET_PERMISSIONS
-flag 一起提供。
PackageManager manager = context.getPackageManager();
for (PackageInfo info : manager.getInstalledPackages(PackageManager.GET_PERMISSIONS){
for (PermissionInfo perm : info.permissions){
// Check if your requested permission is in the list
}
}