2011年9月13日火曜日

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

TelephonyManager/PhoneStateListenerを使用する。

private TelephonyManager telephonyManager;
public void init() {
  telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
  telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_DATA_ACTIVITY);
}

public void term() {
  telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE);
}

public PhoneStateListener phoneStateListener = new PhoneStateListener(){
  @Override
  public void onDataActivity(int direction) {
    Log.v(Constants.TAG, "onDataActivity=" + direction);
    super.onDataActivity(direction);
  }
};

AndroidManifest.xml
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

directionにはいってくる値によって、送信・受信・送受信の開始・停止を知ることができる。

0 件のコメント:

コメントを投稿