【问题标题】:Check which app is doing what检查哪个应用程序在做什么
【发布时间】:2013-07-01 09:39:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: android android-intent android-permissions


    【解决方案1】:

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

    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();
       }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 2011-08-06
      • 2010-12-16
      • 2019-06-01
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      相关资源
      最近更新 更多