2011-09-02 1 views
8

私がしたいのは、それぞれ3GトラフィックとWiFiトラフィックをカウントすることです。今私はWiFiをどうやって行うのか知っています。以下はWiFiのソースコードです。このようにして、私はすべての製造業者のすべてのアンドロイド携帯電話のWiFiトラフィックをカウントすることができます。しかし私は3gのために同様の方法を見つけていない。誰か知っていますか?アンドロイドモバイルで3gのトラフィックをカウントするには?

//to get wifi interface 
private static String getProp(String prop){ 
    String output = ""; 
    try{ 
     Class<?> sp = Class.forName("android.os.SystemProperites"); 
     Method get = sp.getMethod("get",String.class); 
     output = (String)get.invoke(null,prop); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
    return output; 
} 


//to get the traffic from system file 
... 
... 
if (connectinTpe == ConnectivityManager.TYPE_WIFI){ 
    String wifiInterface = getProp("wifi.interface"); 
    if(wifiInterface == null || "".equals(wifiInterface)) wifiInterface = "eth0"; 
    rxFile = "/sys/class/net/" +wifiInterface+ "/statistics/rx_bytes"; 
    txFile = "/sys/class/net/" +wifiInterface+ "/statistics/tx_bytes"; 
} 
... 
... 

答えて

0

あなたがTelephonyManagerを使用することができ、接続の現在のタイプを取得する:デバイスがデフォルトのモバイルデータ接続に接続して、接続タイプチェックされている場合http://developer.android.com/reference/android/telephony/TelephonyManager.html

最初のチェックを:

if (connectinTpe == ConnectivityManager.TYPE_MOBILE) 
    { 
     TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
     int curConnectionType = tm.getNetworkType(); 

     if(curConnectionType >= /*connection type you are looking for*/) 
     { 
      // do what you want 
     } 
    } 
+4

著者は現在の接続の種類を特定する方法ではなく、3Gトラフィックのカウント方法を尋ねました – Idolon

7

APIレベル8(Android 2.2)以降、必要なものを提供するクラスTrafficStatsがあります。

ネットワークトラフィックの統計情報を提供するクラス。これらの統計情報 には、送受信されたバイトと、 が送信され、すべてのインターフェイス、モバイルインターフェイス、および のUID単位で送信されたネットワークパケットが含まれています。

古いバージョンでは、上記の方法を使用することができます(すなわち、/sys/class/net/...ファイルのファイルコンテンツを読み取る)。 This blog postには、TrafficStatsメソッドとファイルの場所の間の優れたマッピングが含まれています。 this SO postには、そのファイルの値を読み込むために使用されたソースが含まれています。それによると、 "/sys/class/net/rmnet0/statistics/rx_bytes"ファイル(「受信バイト数」の値)から数値を読み込み、失敗した場合は "/sys/class/net/ppp0/statistics/rx_bytes"を試してください。

関連する問題