docomo:ISPセット割

 Android  docomo:ISPセット割 はコメントを受け付けていません。
4月 192011
 

ドコモの複数のプロバイダ(ISP)に契約している場合、「各ISP」の月額使用料より157.5円を割引されます。

http://www.nttdocomo.co.jp/charge/discount/isp_setwari/

つまり315円のISPの場合、1つでも2つでも同じ値段になるので、とりあえずつけておくのが吉です。読み取りにくいですが3つ以上の重畳契約でも全てから割引されます。

Android関連のAPNの特徴。
■SPモード(315円)
 ・メアド(docomo.ne.jp)がもらえる。決められた端末でしか使えない。
■mopera Uライト(315円)
 ・どんな端末でも使えるが上限が1万395までいってしまう。
 ・128kAPNを使えば5985円で止まるがすごく遅い。
 ・使わなかった月は無料。
■mopera Uスタンダード(525円)
 ・基本的にはmoperaUライト同様(ただし使わなかった月も料金が発生)
 ・moperaメールアドレスがもらえる
 ・オプションで公衆無線LANサービスMzoneが契約できる(315円)
■iモード(315円)
 フィーチャーフォン用APN。androidで通信は出来ない。
 SIM入れ替えなどする場合に使える。
 (androidに差しているときもiモードメールをimoniで読める。要imode.net(210円))

docomo:電池パック安心サポート

 Android  docomo:電池パック安心サポート はコメントを受け付けていません。
4月 192011
 

電池パック安心サポートが2011/7/1からサービス変更される。http://www.nttdocomo.co.jp/info/notice/page/101221_00.html

Xperia(SO-01B)に限定して言うと、
昨年4月~6月に購入した場合、1年経過後6月中にサービスを受ければ、コレまでどおり500ポイントで電池パックがもらえる。(プレミアステージの場合は無料)

出遅れて7月になると2000ポイントになってしまうので気をつけたい。(プレミアステージでも1500ポイント)
それでも定価で3570円するのでお得ではあるが・・・

このバッテリーBST-41(日本ではSO04)は、Xperia X10(SO-01B)のみではなく、過去海外のXeria X1とX2で採用されており、息が長い商品。
さらに最近発売されたXperia Playでも採用されており、まだまだ価値がありそうだ。

無線関連APIのWCDMAとCDMA2000両対応

 Android  無線関連APIのWCDMAとCDMA2000両対応 はコメントを受け付けていません。
4月 102011
 

どんどんandroidのバージョンが上がって2.1辺りでCDMA2000対応された。

日本でもauからandroid端末が出て、もう避けて通れなくなったので、無線方式に依存するTelephony系を実験した結果を記録。

TelephonyManagerとSignalStrengthは、通信方式によらず呼び出し可能。
通信方式に依存するパラメータは、無効な値が入るだけ。

onCellLocationChangedは通信方式によって、CellLocationにgsmCellLocationかcdmaCellLocationが設定される。
メソッドも違うので、GSM/WCDMAなのにgetBaseStationId()したり、CDMAなのにgetLac()したりすると例外が発生する。

android2.0まではGSM前提で書いていた処理を、通信方式CDMA対応させる必要が出てくる。
試行錯誤の結果、下記でGSM/WCDMAとCDMA2000両対応完了。
docomoのXperiaとauのIS03で動作確認できた。

 //基地局の変化時に呼ばれる
@Override
public void onCellLocationChanged(CellLocation location) {
    strCellLocation="\n--- android.telephony.CellLocation:\n";

    if(location instanceof GsmCellLocation){
        strCellLocation+="***GsmCellLocation\n";
        GsmCellLocation loc=(GsmCellLocation)location;
        strCellLocation+="getCid()="+loc.getCid()+"\n";
        strCellLocation+="getLac()="+loc.getLac()+"\n";

    }else if(location instanceof CdmaCellLocation){
        strCellLocation+="***CdmaCellLocation\n";
        CdmaCellLocation loc=(CdmaCellLocation)location;
        strCellLocation+="getBaseStationId()="+loc.getBaseStationId()+"\n";
        strCellLocation+="getBaseStationLatitude()="+loc.getBaseStationLatitude()+"\n";
        strCellLocation+="getBaseStationLongitude()="+loc.getBaseStationLongitude()+"\n";
        strCellLocation+="getNetworkId()="+loc.getNetworkId()+"\n";
        strCellLocation+="getSystemId()="+loc.getSystemId()+"\n";
    }
}

IS03の結果
— android.telephony.CellLocation:
***CdmaCellLocation
getBaseStationId()=1202
getBaseStationLatitude()=507216
getBaseStationLongitude()=2011139
getNetworkId()=21560
getSystemId()=12305