0

有什么方法可以从我的应用程序中检查哪个应用程序在 android 中做什么。我是说

  • 如果有任何应用正在读取通话记录
  • 如果任何应用程序正在读取消息
  • 如果任何应用程序正在从服务器读取数据
  • 如果任何应用程序正在访问 GPS,
  • 如果任何应用程序正在播放音乐

请提出任何想法,任何帮助将不胜感激。

4

1 回答 1

3

您可以做的最好的事情是检查应用程序是否具有执行每项任务所需的权限。以下代码段检索所有已安装应用程序的权限:

PackageManager pm = getPackageManager();
List<ApplicationInfo> 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]);
         }
      }
   } catch (NameNotFoundException e) {
      e.printStackTrace();
   }
}

除此之外,仅仅因为一个应用程序有权做某事并不意味着它正在这样做。某些权限涵盖不止一种用途,并且该应用程序可能正在使用它有权访问的部分内容。

于 2013-07-01T09:41:52.873 回答