2016-04-18 10 views

答えて

2

documentation

Traffic Stats APIを使用すると、TrafficStats.setThreadStatsTag()メソッドを使用してスレッド内で発生するデータ転送にタグを付け、その後に個々のソケットにtagSocket()を使用して手動でタグ付け(タグなし)することができます。 )とuntagSocket()です。例えば:

TrafficStats.setThreadStatsTag(0xF00D); 
TrafficStats.tagSocket(outputSocket); 
// Transfer data using socket 
TrafficStats.untagSocket(outputSocket); 

はApacheのHttpClientとURLConnectionのライブラリーは、自動的に現在getThreadStatsTag()値に基づいてソケットにタグを付けます。これらのライブラリは、キープアライブプールを通じてリサイクルされると、ソケットにタグを付けたりタグを解除したりします。

TrafficStats.setThreadStatsTag(0xF00D); 
try { 
    // Make network request using HttpClient.execute() 
} finally { 
    TrafficStats.clearThreadStatsTag(); 
} 

ソケットのタグ付けはAndroid 4.0ではサポートされていますが、リアルタイムの統計情報はAndroid 4.0.3以降を搭載する端末にのみ表示されます。

+0

しかし、TrafficStatsを使用して、そのタグでタグ付けされたトラフィックに対してのみ転送されるバイトを提供することは可能ですか?同じ時刻に複数のネットワーク操作がアプリで発生している可能性があります...特定のタグ(たとえば、特定のネットワーク関連のタスクではなく、何か他のものではありませんか?私が見る唯一の方法は、getTotalRxBytes()...特定のタグをフィルタリングすることはできませんか? – drmrbrewer

関連する問題