猪俣です。
getSimSerialNumber() はCDMA端末の場合 NULL を返すのが望ましいという仕様があるようです。
http://stackoverflow.com/questions/2785485/is-there-a-unique-android-device-id
手元では IS01,IS03しか確認できていないのですが、
auではICCIDを取得できないと考えたほうがよさそうです。
どういう用途かによりますが、
端末識別情報が必要であればICCIDでなくIMEIやIMSIを使うのはどうでしょうか?
いずれもREAD_PHONE_STATE権限があれば参照可能です。
>>
TelephonyManager manager = (TelephonyManager)
getSystemService(TELEPHONY_SERVICE);
// IMSI: SIMカード帰属の契約者情報(15桁の数値)
String imsi = manager.getSubscriberId();
// IMEI: スマートフォン端末帰属の固有番号(15桁の数値)
String imei = manager.getDeviceId();
<<
IMEIの代わりに本来はANDROID_ID を公開に使うべきだと思うのですが、
最近の端末の仕様(不具合?)のお陰で端末認証には使えませんね…。