在android系统中获取imei号和其他手机信息
如果需要通过android SDK获取手机相关信息。需要通过如下方式获取:
TelephonyManager telephonyManager=(TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); String imei=telephonyManager.getDeviceId();
不过,光这么写,会有类似如何查看android产生的异常的报错,主要是因为android的权限需要打开,在AndroidManifest.xml文件中增加:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
就可以拿到手机的imei号了。
TelephonyManager还有其他方法可以调用,获取手机的其他信息。
比如获取手机号码,可以这样:
telephonyManager.getLine1Number();
不过在g1手机上测试,使用移动全球通的sim卡,无法得到手机号码,是个空字符串。
获取手机的sim卡号:
telephonyManager.getSimSerialNumber();
这个可以在上述环境下得到。
获取客户id,在gsm中是imsi号:
telephonyManager.getSubscriberId();
这个也能在商户环境得到。
有关TelephonyManager的API,详见:
http://developer.android.com/intl/zh-CN/reference/android/telephony/TelephonyManager.html
4 Comments to “在android系统中获取imei号和其他手机信息”
技术分享 » android获取手机信息 — 2010年06月9日 @ 12:27
这篇文章上的评论的 RSS feed TrackBack URI
By 小天狼星, 2010年01月6日 @ 13:15
很遗憾,这个方法在1.6的模拟器里面不能用
By snowolf819, 2010年01月22日 @ 20:37
你好,我目前想获得手机的一些信息,搜索到你这篇文章,对我非常有帮助,但是现在遇到这样的问题,对方用的是G2(WCDMA),固件是1.6的,我用getLine1Number()这个方法获取不到手机号码,并且我用getPhoneType()这个方法返回的竟然是GSM的网络类型,非常奇怪。另外我还想获得如“中国移动”,“中国联通”服务商的名称,可是没发现哪个API是提供这个功能的,请问您知道吗?谢谢
By Icever, 2011年09月7日 @ 09:23
这个方法在1.6中确实不可用。