2011年10月25日火曜日

モバイル(3G)データ通信の開始・終了を知る方法 (2)

TelephonyManager/PhoneStateListenerを使用することで、通信・終了を知ることができると以前書いたが、画面を消している場合は通知されないようだ。Androidのソースには以下の部分がある。

¥base¥telephony¥java¥com¥android¥internal¥telephony¥gsm¥
GsmDataConnectionTracker.java

if (activity != newActivity && mIsScreenOn) {
  activity = newActivity;
  phone.notifyDataActivity();
}

ソースを完全には追っていないためはっきりとは言えないが、ここが効いているものと思われる。しかし、

telephony¥java¥com¥android¥internal¥telephony¥cdma¥
CdmaDataConnectionTracker.java

の方では、そのような変数を見ていない。そのため、Docomoでは通知されないが、auでは通知されるかもしれない。なお、Docomoでしか確認していない。

1 件のコメント:

  1. 確認したが、仕様のようだ。
    http://groups.google.com/group/android-platform/browse_thread/thread/a021866e0c77e933?hl=en
    うーん、使えないな。

    返信削除