2010-12-13 1 views
7

私はアプリに取り組んでいますし、それはほとんど一つだけ除いて終了した:私は、私のようになり、誰かが私を助けることができるので、もしリンク速度を取得し、ステータスbar.Iに配置するJavaに新しい午前方法がわかりませんとてもありがたい。 P.P.悪い英語で申し訳ありません。プログラムでリンク速度を取得するにはどうすればよいですか?

+1

リンク速度とは何ですか? –

+0

あなたは帯域幅のダウンロード速度を意味しましたか?または不確定なプログレスバーを参照することはできますか? – Franco

+0

インターネット接続がどれくらい速くダウンロードできるか知りたいですか?それとも、どれだけ速くダウンロードしているのですか?それとも何か完全に? –

答えて

34

repliersが示すように、あなたの質問は非常に明確ではありません。あなたは、リンク接続速度を参照することができた(すなわち良好な信号受信無線LANを持つまたはフルスピードHSDPA 7.2 Mbpsの最大54Mbpsまで)に依存します:

  • あなたがで使用しているネットワークインタフェース時間はです。携帯電話によってはテザリングが許可されているため、Wi-Fiとモバイルデータリンク(GPRS/3G/HSDPA)の両方を同時にアクティブにすることも、自動切り替え(Wi-Fi接続が切断された場合、携帯電話がモバイルネットワークに自動的に切り替わります)
  • で交渉さ接続速度。信号品質/キャリアネットワーク構成(最大速度制限付き)/モバイルデータ契約(毎月の帯域制限を超えていると通常はGPRS速度にデフォルト設定されます)に応じて異なります。私はそれを知っている標準的なJavaのAPIメソッドが、AndroidのAPIに必要な機能が存在しないかと思います。この場合

のWiFiリンク速度チェックのモバイルデータリンクについては WifiInfo.getLinkSpeed()
  • については
    • TelefonyManager.getNetworkType()をチェックするだけで、現在のモバイルデータリンクの種類を判断できます。次に、リンクタイプ(GPRSでは最大128 kbps、EDGEでは最大236.8 kbps、3Gでは最大2 Mbps、HSDPAでは最大7.2 Mbps)で実際の速度に近づける必要があります。考慮すると、これは唯一の近似であるです。あなたはHSDPAを使用していますが、キャリアは最高速度を2 Mbpsに制限しています。あなたが現在(ダウンロード/アップロード)データリンク速度を参照してください他のケースこれは実際にあなたの携帯電話とサーバ間のリンク速度が、速度がでない測定、ハイレベルでのみ利用可能であるで

    、あなたのリンク速度だけでなく、多くの他の要因(あなたの電話機とサーバー、サーバー自体との間のすべてのリンク)によっても判断できます。通常、すべてのシナリオでHTTP接続のみがサポートされているため、HTTPデータ速度(データパケットのオーバーヘッドトラフィックは除外)を意味する「HTTPレベル速度」を測定することができます(通信事業者は、トラフィック)。

    あなたは8レベルのAPI TrafficStatsと呼ばれる興味深い機能を使用している場合もあります。これにより、モバイルデータリンクを介して携帯電話とやりとりされた低レベルでの送受信パケットを知ることができます。これにより、探している場所の情報だけを提供することができます(これらの測定値を経過時間とともに使用し、リンク速度)。

  • +0

    あなたのクイック応答ありがとう – 4yBAk

    +0

    3G接続速度の検出に関してもっと詳しく調べることができますか? TelefonyManager.getNetworkType()を出力すると、特定のテレフォニータイプではなく、「CONNECTED」が返されます。 – worked

    2

    あなたは直接伝えることができません。基礎となるオペレーティングシステムに問い合わせる必要があります。 OS Xでは、適切なネットワークポートの "/ sbin/ifconfig"からの出力を解析できます。

    1

    また、JNIを使​​用して拡張機能を記述し、それはあなたが他のアプリケーションからの出力を解析したくない場合は場合にだけですが、このソリューションはポータブルではないことに注意してくださいC.を使用して接続速度を求めることができます。

    関連する問題