下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码
准备条件:一部安卓手机、手机SIM卡确保插入手机里、eclipse ADT和android-sdk开发环境
第一步:新建一个android工程(JinshanTest),
并需要在工程的AndroidManifest.xml文件中,添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
图例:
第二步:新建一个工具类PhoneInfo.java
1.package com.jinshan.test;
2.
3.
4.import android.content.Context;
5.import android.telephony.TelephonyManager;
6.
7./**
8. * 读取手机设备信息测试代码
9. * http://www.souapp.com 搜应用网
10. * song2c@163.com
11. * 宋立波
12. */
13.public class PhoneInfo {
14.
15. private TelephonyManager telephonyManager;
16. /**
17. * 国际移动用户识别码
18. */
19. private String IMSI;
20. private Context cxt;
21. public PhoneInfo(Context context) {
22. cxt=context;
23. telephonyManager = (TelephonyManager) context
24. .getSystemService(Context.TELEPHONY_SERVICE);
25. }
26.
27. /**
28. * 获取电话号码
29. */
30. public String getNativePhoneNumber() {
31. String NativePhoneNumber=null;
32. NativePhoneNumber=telephonyManager.getLine1Number();
33. return NativePhoneNumber;
34. }
35.
36. /**
37. * 获取手机服务商信息
38. */
39. public String getProvidersName() {
40. String ProvidersName = "N/A";
41. try{
42. IMSI = telephonyManager.getSubscriberId();
43. // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
44. System.out.println(IMSI);
45. if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
46. ProvidersName = "中国移动";
47. } else if (IMSI.startsWith("46001")) {
48. ProvidersName = "中国联通";
49. } else if (IMSI.startsWith("46003")) {
50. ProvidersName = "中国电信";
51. }
52. }catch(Exception e){
53. e.printStackTrace();
54. }
55. return ProvidersName;
56. }
57.