2013-12-21 13 views
6

我正在使用应用程序,它将检测使用WIFI /蓝牙/其他方式传输的文件。它还会检测正在执行此操作的应用程序。如何获取正在通过蓝牙传输的文件的详细信息,Android中的WiFi

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

我在想,它可以通过广播接收机的动作Intent.ACTION_SEND来实现。但随后我为此question拿出@CommonsWare'sanswer

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

回答

0

所有应用程序都安装在沙盒中,因此您可以从外部应用程序获取关于他们正在做什么的信息有限。这是设计的,如果这一切都暴露出来,将是可怕的。但这并不是说你不能从他们那里收集一些信息。您可以使用TrafficStats API查看通过网络发送的数据。因此,您可以持续轮询所有UID的这些API,并查看哪些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

不知道这将是如何通过蓝牙。这当然是不同的,如果你实际上建立了你正在监测的其他应用程序。