1)android 获取设备型号、OS版本号:

   



[java]  view plain copy

 


1. import
2. // .....  
3. new
4.     String model = bd.MODEL;   
5.     android.os.Build.MODEL   
6.     android.os.Build.VERSION.RELEASE


 

 

2)android 获取设备Id等信息: 
    1.需要在AndroidManifest.xml中添加权限。 
      
    2.代码: 



[java]  view plain copy

 


1. /* 
2.    * 电话状态: 
3.    * 1.tm.CALL_STATE_IDLE=0          无活动 
4.    * 2.tm.CALL_STATE_RINGING=1  响铃 
5.    * 3.tm.CALL_STATE_OFFHOOK=2  摘机 
6.    */
7. //int 
8. /* 
9.    * 电话方位: 
10.    * 
11.    */
12. //CellLocation 
13. /* 
14.    * 唯一的设备ID: 
15.    * GSM手机的 IMEI 和 CDMA手机的 MEID. 
16.    * Return null if device ID is not available. 
17.    */
18. //String 
19. /* 
20.    * 设备的软件版本号: 
21.    * 例如:the IMEI/SV(software version) for GSM phones. 
22.    * Return null if the software version is not available. 
23.    */
24. //String 
25. /* 
26.    * 手机号: 
27.    * GSM手机的 MSISDN. 
28.    * Return null if it is unavailable. 
29.    */
30. //String 
31. /* 
32.    * 附近的电话的信息: 
33.    * 类型:List 
34.    * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES 
35.    */
36. //List 
37. /* 
38.    * 获取ISO标准的国家码,即国际长途区号。 
39.    * 注意:仅当用户已在网络注册后有效。 
40.    *       在CDMA网络中结果也许不可靠。 
41.    */
42. //String 
43. /* 
44.    * MCC+MNC(mobile country code + mobile network code) 
45.    * 注意:仅当用户已在网络注册时有效。 
46.    *    在CDMA网络中结果也许不可靠。 
47.    */
48. //String 
49. /* 
50.    * 按照字母次序的current registered operator(当前已注册的用户)的名字 
51.    * 注意:仅当用户已在网络注册时有效。 
52.    *    在CDMA网络中结果也许不可靠。 
53.    */
54. //String 
55. /* 
56.    * 当前使用的网络类型: 
57.    * 例如: NETWORK_TYPE_UNKNOWN  网络类型未知  0 
58.      NETWORK_TYPE_GPRS     GPRS网络  1 
59.      NETWORK_TYPE_EDGE     EDGE网络  2 
60.      NETWORK_TYPE_UMTS     UMTS网络  3 
61.      NETWORK_TYPE_HSDPA    HSDPA网络  8 
62.      NETWORK_TYPE_HSUPA    HSUPA网络  9 
63.      NETWORK_TYPE_HSPA     HSPA网络  10 
64.      NETWORK_TYPE_CDMA     CDMA网络,IS95A 或 IS95B.  4 
65.      NETWORK_TYPE_EVDO_0   EVDO网络, revision 0.  5 
66.      NETWORK_TYPE_EVDO_A   EVDO网络, revision A.  6 
67.      NETWORK_TYPE_1xRTT    1xRTT网络  7 
68.    */
69. //int 
70. /* 
71.    * 手机类型: 
72.    * 例如: PHONE_TYPE_NONE  无信号 
73.      PHONE_TYPE_GSM   GSM信号 
74.      PHONE_TYPE_CDMA  CDMA信号 
75.    */
76. //int 
77. /* 
78.    * Returns the ISO country code equivalent for the SIM provider's country code. 
79.    * 获取ISO国家码,相当于提供SIM卡的国家码。 
80.    * 
81.    */
82. //String 
83. /* 
84.    * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits. 
85.    * 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字. 
86.    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断). 
87.    */
88. //String 
89. /* 
90.    * 服务商名称: 
91.    * 例如:中国移动、联通 
92.    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断). 
93.    */
94. //String 
95. /* 
96.    * SIM卡的序列号: 
97.    * 需要权限:READ_PHONE_STATE 
98.    */
99. //String 
100. /* 
101.    * SIM的状态信息: 
102.    *  SIM_STATE_UNKNOWN          未知状态 0 
103.    SIM_STATE_ABSENT           没插卡 1 
104.    SIM_STATE_PIN_REQUIRED     锁定状态,需要用户的PIN码解锁 2 
105.    SIM_STATE_PUK_REQUIRED     锁定状态,需要用户的PUK码解锁 3 
106.    SIM_STATE_NETWORK_LOCKED   锁定状态,需要网络的PIN码解锁 4 
107.    SIM_STATE_READY            就绪状态 5 
108.    */
109. //int 
110. /* 
111.    * 唯一的用户ID: 
112.    * 例如:IMSI(国际移动用户识别码) for a GSM phone. 
113.    * 需要权限:READ_PHONE_STATE 
114.    */
115. //String 
116. /* 
117.    * 取得和语音邮件相关的标签,即为识别符 
118.    * 需要权限:READ_PHONE_STATE 
119.    */
120. //String 
121. /* 
122.    * 获取语音邮件号码: 
123.    * 需要权限:READ_PHONE_STATE 
124.    */
125. //String 
126. /* 
127.    * ICC卡是否存在 
128.    */
129. //boolean 
130. /* 
131.    * 是否漫游: 
132.    * (在GSM用途下) 
133.    */
134. //


 

 

 

3)获取AndroidManifest.xml的信息 
    1.versionCode 
   



[java]  view plain copy

 


1. getPackageManager().getPackageInfo(packageName, 0).versionCode


 
    可以用Context.gerPackageName()取得packageName 
    2.versionName 
   



[java]  view plain copy

 


1. getPackageManager().getPackageInfo(packageName, 0).versionName      
2.     getPackageManager().getPackageInfo(pName, PackageManager.GET_CONFIGURATIONS);


 

4)Android判断应用是否存在 
    1.通过包名判断 
   



[java]  view plain copy

 


1. public boolean
2. if (packageName == null || "".equals(packageName))    
3. return false;    
4. try
5.             ApplicationInfo info = getPackageManager().getApplicationInfo(    
6.                     packageName, PackageManager.GET_UNINSTALLED_PACKAGES);    
7. return true;    
8. catch
9. return false;    
10.         }    
11.     }


    2.通过Activity判断 
   



[java]  view plain copy

 


1. Intent intent = new
2. "com.android.settings", //$NON-NLS-1$  
3. "com.android.settings.InstalledAppDetails"); //$NON-NLS-1$  
4. "com.android.settings.ApplicationPkgName", //$NON-NLS-1$  
5.             mCurrentPkgName);    
6.     List acts = getPackageManager().queryIntentActivities(    
7. 0);    
8. if (acts.size() > 0) {    
9.         startActivity(intent);    
10. else
11. this,    
12.                 getString(R.string.failed_to_resolve_activity),    
13.                 Toast.LENGTH_SHORT).show();    
14.     }

 

5)获取设备屏幕分辨率 
    首先我们需要用到的是DisplayMetrics这个类,它可以为我们获得手机屏幕属性,这里将其所在类导入。 
   



[java]  view plain copy

 


1. import


 
    得到实例对象。 
   



[java]  view plain copy

 


1. DisplayMetrics dm = new
2.     getWindowManager().getDefaultDisplay().getMetrics(dm);

  
    得到手机屏幕高度: 
   



[java]  view plain copy

 


1. dm.heightPixels;


 
    得到手机屏幕宽度: 
   



[java]  view plain copy

 


1. dm.widthPixels;



 

 

    得到以上手机屏幕的高度跟宽度后,即可以通过这两个值按照比例还设定程序布局中空间的大小。

6)获取CPU序列号

 



[java]  view plain copy

 

1. /** 
2.   * 获取CPU序列号 
3.   * 
4.   * @return CPU序列号(16位) 
5.   * 读取失败为"0000000000000000" 
6.   */
7. public static
8. "", strCPU = "", cpuAddress = "0000000000000000";   
9. try
10. //读取CPU信息 
11. "cat /proc/cpuinfo");   
12. new
13. new
14. //查找CPU序列号 
15. for (int i = 1; i   
16.                         str = input.readLine();   
17. if (str != null) {   
18. //查找到序列号所在行 
19. if (str.indexOf("Serial") > -1) {   
20. //提取序列号 
21. ":") + 1,   
22.                                                         str.length());   
23. //去空格 
24.                                         cpuAddress = strCPU.trim();   
25. break;   
26.                                 }   
27. else{   
28. //文件结尾 
29. break;   
30.                         }   
31.                 }   
32. catch
33. //赋予默认值 
34.                 ex.printStackTrace();   
35.         }   
36. return
37. }


 

 

7)获取位置信息: locationManager 
    1.获取LocationManager对象 
   



[java]  view plain copy

 



1. String serviceString = Context.LOCATION_SERVICE;   
2.     LocationManager LocationManager = (LocationManager)getSystemService(serviceString);



 
    2.选择定位方法 
    2.1 GPS_PROVIDER:        GPS 
    2.2    NETWORK_PROVIDER:    NETWORK 
    以network为例: 
   



[java]  view plain copy

 


1. String provider = LocationManager.NETWORK_PROVIDER   
2.     Location location = locationManager.getLaskKnownLocation(provider);   
3. double
4. double



8)当前时间和时区

 

System.currentTimeMillis()获取当前时间 
时区: 
TimeZone.getDefault();