10

各アプリが使用する 3G のデータ量を読み取りたい。これは iOS 5.x で可能ですか? iOS 4.x では?私の目標は、たとえば次のとおりです。

  • マップはデータ プランから 3 MB を消費しました
  • メールはデータ プランから 420 kB を消費しました

などなど。これは可能ですか?

編集:それを行うアプリを見つけました:Data Man Pro

ここに画像の説明を入力

編集 2: 報奨金を開始しています。余分なポイントは、これを明確にする答えになります。私はそれが可能であることを知っています (Data Man Pro の画面)。解決策は限られていると確信しています。しかし、解決策とこれを実装する方法は何ですか。

4

2 に答える 2

8

これらは単なるヒントであり、解決策ではありません。これについては何度も考えましたが、実際にすべてを実装し始めることはありませんでした。

  1. まず第一に、転送されたバイト数を計算してネットワーク インターフェイスにクエリを実行できます。コードについてはこの SO の回答と、iOS のネットワーク インターフェイスに関する適切な説明をご覧ください。

  2. sysctlまたは同様のシステム関数を使用して、現在実行中のアプリを検出します (実行中の場合は、OSX でpsまたはtopコマンドが行うように、プロセス状態が RUNNING に設定されていることを意味します。試したことはありません。iOS ではこれが可能であると思います。非特権ユーザーとしてアプリを実行しても問題はありません)、どのアプリが実行されているかを推測し、それらのアプリのトラフィック統計を保存できます。明らかに、アプリケーションがバックグラウンドで実行されている可能性があるため、どのアプリがデータを転送しているかを判断するのは困難です. OSX Lion でnettop
    が行うように、プロセス/アプリごとのネットワーク アクティビティに関する情報を取得することもできますが、残念ながらnettopプライベート フレームワーク NetworkStatistics.framework を使用するため、その実装から何かを掘り出すことはできません。

  3. 時間を考慮してください。

私の2セント

于 2012-05-24T10:00:25.223 に答える
1

いいえ、iOS のすべてのアプリケーションはサンドボックス化されています。つまり、アプリケーションの外部にアクセスすることはできません。これが可能だとは思いません。また、データ トラフィックがデバイスのこのレベルに保存されるとは思わないため、Apple はページnetworkまたは.usageSettings.app

それに加えて、誰もが「データプラン」を持っているわけではありません。たとえば、スウェーデンでは、データ トラフィックがサイズや速度に制限なく無料であることが一般的です。

于 2012-05-10T09:27:47.657 に答える