如何获取通过蓝牙,WiFi在Android中传输的文件的详细信息

Swa*_*nar 6 android bluetooth wifi

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

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

我当时认为这可以通过广播接收器实现Intent.ACTION_SEND.但后来我想出了@ CommonsWare 对这个问题回答.

在我的案例中如何实现?

Dav*_*ave 0

所有应用程序都在 Android 中沙箱化,因此您可以从外部应用程序获取有关其正在执行的操作的信息有限。这是设计使然,如果这一切都暴露出来,那就太可怕了。但这并不是说您不能从他们那里收集一些信息。您可以使用 TrafficStats API 查看通过网络发送的数据。因此,您可以连续轮询这些 API 中的所有 UID,并查看哪些 UID 已更新 tx 和 rx 字节。这将使您了解不同的应用程序如何/何时通过网络发送数据。这不会让您访问特定文件信息。

从此处获取所有 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));
} 
Run Code Online (Sandbox Code Playgroud)

流量统计 API 可在此处找到。

不知道如何通过蓝牙实现这一点。如果您实际构建了要监视的其他应用程序,这当然会有所不同。