【问题标题】:How to get details of the file which is transmitting via Bluetooth, WiFi in Android如何在 Android 中获取通过蓝牙、WiFi 传输的文件的详细信息
【发布时间】:2014-01-10 02:12:40
【问题描述】:

我正在开发应用程序,它将检测使用 WIFI/蓝牙/其他方式传输的文件。它还将检测正在执行此操作的应用程序。

如果我想检测文件的传输,那么最好的方法是什么?

我在想它可以通过广播接收器来实现Intent.ACTION_SEND 动作。但后来我想出了@CommonsWare'sanswer 这个question

在我的情况下将如何实现?

【问题讨论】:

    标签: android bluetooth wifi


    【解决方案1】:

    所有应用程序都在 Android 中进行了沙盒处理,因此您可以从外部应用程序获得的关于它们正在做什么的信息有限。这是设计使然,如果这一切都暴露出来,那将是可怕的。但这并不是说你不能从他们那里收集到一些信息。您可以使用 TrafficStats API 查看通过网络发送的数据。因此,您可以不断地轮询这些 API 以获取所有 UID,并查看哪些 uid 更新了 tx 和 rx 字节。这将使您了解不同应用程序如何/何时通过网络发送数据。这不会让您访问特定的文件信息。

    获取从 here 获取的所有 uid 的示例代码。

    final PackageManager packageManager = getPackageManager();
    List<ApplicationInfo> installedApplications = 
       packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
    
    for (ApplicationInfo appInfo : installedApplications)
    {
        Log.d("OUTPUT", "Package name : " + appInfo.packageName);
        Log.d("OUTPUT", "Name: " + appInfo.loadLabel(packageManager));
    } 
    

    流量统计 API 位于 here

    不确定如何通过蓝牙实现。如果您实际构建了您尝试监控的其他应用程序,这当然是不同的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 2012-02-07
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多