2012-05-10 13 views
10

すべてのアプリが使用する3Gのデータ量を読みたいと思います。これはiOS 5.xでも可能ですか? iOS 4.xでは?私の目標は、たとえば次のとおりです。任意のアプリケーションからのデータ使用

  • マップが
  • メールなど、あなたのデータプランから

などを420キロバイトを消費し、あなたのデータプランから3メガバイトを消費し、これは可能ですか?

編集:私は恵みを始めている :Data Man Pro

enter image description here

はEDIT 2: 私はちょうどことをやってアプリを見つけました。これを明確にする答えには別の点があります。私はそれが可能です(データマンプロの画面)と私は解決策が限られていると確信しています。しかし、解決策とこれを実装する方法は何ですか?

答えて

8

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

  1. まず、あなたは、ネットワークインターフェイスを照会転送されたバイトを計算するコードとiOS上のネットワークインタフェースについての素晴らしい説明はthis SO answerに見てみることができます。

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

  3. 時間を考慮します。

データプラン以外にもOK私の2セントの

+1

いくつかのData Manユーザーによって報告された奇妙な不正確さを考慮すると、おそらくあなたが説明したものと類似または同一のメカニズムに基づいて、「教育された推測」を行うだけです。 +1 – Toastor

1

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

さらに、誰もが "データプラン"を持っているわけではありません。例えば。スウェーデンではデータトラフィックがサイズやスピードの制限なく無料であるという共通点があります。

+0

。もしユーザーがそれを持っていなければ私はすべての接続の魔女がWiFiではないことを読んでほしい。 – Kuba

+0

上記のように、アプリケーションはサンドボックス化されているので、自分のアプリのサンドボックスの外に何かにアクセスすることはできません。*あなたの*アプリケーションがReachabilityを使ってどの接続を使用しているかを確認できますが、あなたの質問には答えません。 –

+0

私はアプリを見つけました:http://itunes.apple.com/us/app/dataman-pro-real-time-data/id433617332?mt=8!オリジナルの投稿を更新します! – Kuba

関連する問題