2013-12-21 8 views
6

私はアプリケーションで作業しています.WIFI/Bluetooth /その他の方法で送信されているファイルを検出します。この操作を行っているアプリケーションも検出します。Bluetooth、AndroidのWiFiで送信しているファイルの詳細を取得する方法

私はファイルの送信を検出したい場合は、何が最良の方法でしょうか?

私は、それが放送受信機によってIntent.ACTION_SENDのアクションで達成できると考えていました。しかし、私は@CommonsWare'sanswerこれはquestionのために来る。

私の場合はどのように達成されますか?

答えて

0

すべてのアプリケーションはAndroidでサンドボックス化されているため、外部アプリからの情報は限られています。これは設計によるもので、これがすべて公開されているとひどいことになります。しかし、それはあなたがそれらからいくつかの情報を集めることができないと言っているわけではありません。 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です。

これがどのようにブルートゥースで可能かわかりません。これはもちろん、監視しようとしている他のアプリケーションを実際に構築した場合とは異なります。

関連する問題