7

アイスランドでの素敵な休暇から戻ったばかりで、電話会社からのデータ ローミングの請求書を待っています。トラフィックを可能な限り制限して最善を尽くしたいと思いますが、事前に知りたい. 私は非常に優れたアプリNetCounterを使用しましたが、ローミング データ トラフィックをまったく測定しませんでした。

そのため、ローミング データ トラフィックだけを測定する独自のアプリを構築したいと考えています。最初にいくつかのブール値 ( NetworkInfo.IsRoaming() & TelephonyManager.isNetworkRoaming() ) がありますが、トラフィックを測定する方法がわかりませんtrue

問題は、ローミング中にデータ トラフィックを測定するにはどうすればよいかということです。(API レベル 8 のTrafficStats機能のようなものを求めていますが、API レベル 3 の場合)。使用スマホはSamsung Galaxy i7500 (Android 1.6)

お時間をいただきありがとうございます。

4

2 に答える 2

9

方法 1. 「/proc/net/dev」を解析します。

私の電話では、次のようになります。

Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:     712       8    0    0    0     0          0         0      712       8    0    0    0     0       0          0
dummy0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
rmnet0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
rmnet1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
rmnet2:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
 wlan0:  146112     423   32    0    0     0          0         0    42460     409    0    0    0     0       0          0

私の電話では、「rmnet0」行は、モバイル回線インターネットの統計を保持する行です。その形式がカーネルのバージョン間で変わらないことを願っています。

方法 2: "/sys/class/net" を解析します。

おすすめの方法だと思います。ここに示すように: http://www.jaqpot.net/svn/android/netcounter/trunk/src/net/jaqpot/netcounter/service/SysClassNet.java

于 2010-08-10T12:12:49.970 に答える
3

コメントで言及されているオープンソースのオプションがいくつかあります。

現在インストールしているのは 3G Watchdog です。AndroLib に関する著者によるいくつかのコメントは、彼がソース コードのリリースに消極的であることを示唆していますが、コミュニティからの支援があれば、私たち全員が協力して最高のデータ使用アプリを作成できると確信しています.

最良の解決策は、NetMeter からコードを取得し、サービスをバックグラウンドで実行することだと思います。3G Watchdog がこれを行います (サービスは と呼ばれnet.NetMonitorServiceます)。

于 2010-08-09T19:49:26.803 に答える