近个多月之前整理的,记录,共享。

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

[java] view plain
  1. importandroid.os.Build;
  2. //.....
  3. Buildbd=newBuild();
  4. Stringmodel=bd.MODEL;
  5. android.os.Build.MODEL
  6. android.os.Build.VERSION.RELEASE

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

2.代码:

[java] view plain
  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. tm.getCallState();//int
  8. /*
  9. *电话方位:
  10. *
  11. */
  12. tm.getCellLocation();//CellLocation
  13. /*
  14. *唯一的设备ID:
  15. *GSM手机的IMEI和CDMA手机的MEID.
  16. *ReturnnullifdeviceIDisnotavailable.
  17. */
  18. tm.getDeviceId();//String
  19. /*
  20. *设备的软件版本号:
  21. *例如:theIMEI/SV(softwareversion)forGSMphones.
  22. *Returnnullifthesoftwareversionisnotavailable.
  23. */
  24. tm.getDeviceSoftwareVersion();//String
  25. /*
  26. *手机号:
  27. *GSM手机的MSISDN.
  28. *Returnnullifitisunavailable.
  29. */
  30. tm.getLine1Number();//String
  31. /*
  32. *附近的电话的信息:
  33. *类型:List
  34. *需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
  35. */
  36. tm.getNeighboringCellInfo();//List
  37. /*
  38. *获取ISO标准的国家码,即国际长途区号。
  39. *注意:仅当用户已在网络注册后有效。
  40. *在CDMA网络中结果也许不可靠。
  41. */
  42. tm.getNetworkCountryIso();//String
  43. /*
  44. *MCC+MNC(mobilecountrycode+mobilenetworkcode)
  45. *注意:仅当用户已在网络注册时有效。
  46. *在CDMA网络中结果也许不可靠。
  47. */
  48. tm.getNetworkOperator();//String
  49. /*
  50. *按照字母次序的currentregisteredoperator(当前已注册的用户)的名字
  51. *注意:仅当用户已在网络注册时有效。
  52. *在CDMA网络中结果也许不可靠。
  53. */
  54. tm.getNetworkOperatorName();//String
  55. /*
  56. *当前使用的网络类型:
  57. *例如:NETWORK_TYPE_UNKNOWN网络类型未知0
  58. NETWORK_TYPE_GPRSGPRS网络1
  59. NETWORK_TYPE_EDGEEDGE网络2
  60. NETWORK_TYPE_UMTSUMTS网络3
  61. NETWORK_TYPE_HSDPAHSDPA网络8
  62. NETWORK_TYPE_HSUPAHSUPA网络9
  63. NETWORK_TYPE_HSPAHSPA网络10
  64. NETWORK_TYPE_CDMACDMA网络,IS95A或IS95B.4
  65. NETWORK_TYPE_EVDO_0EVDO网络,revision0.5
  66. NETWORK_TYPE_EVDO_AEVDO网络,revisionA.6
  67. NETWORK_TYPE_1xRTT1xRTT网络7
  68. */
  69. tm.getNetworkType();//int
  70. /*
  71. *手机类型:
  72. *例如:PHONE_TYPE_NONE无信号
  73. PHONE_TYPE_GSMGSM信号
  74. PHONE_TYPE_CDMACDMA信号
  75. */
  76. tm.getPhoneType();//int
  77. /*
  78. *ReturnstheISOcountrycodeequivalentfortheSIMprovider'scountrycode.
  79. *获取ISO国家码,相当于提供SIM卡的国家码。
  80. *
  81. */
  82. tm.getSimCountryIso();//String
  83. /*
  84. *ReturnstheMCC+MNC(mobilecountrycode+mobilenetworkcode)oftheprovideroftheSIM.5or6decimaldigits.
  85. *获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.
  86. *SIM卡的状态必须是SIM_STATE_READY(使用getSimState()判断).
  87. */
  88. tm.getSimOperator();//String
  89. /*
  90. *服务商名称:
  91. *例如:中国移动、联通
  92. *SIM卡的状态必须是SIM_STATE_READY(使用getSimState()判断).
  93. */
  94. tm.getSimOperatorName();//String
  95. /*
  96. *SIM卡的序列号:
  97. *需要权限:READ_PHONE_STATE
  98. */
  99. tm.getSimSerialNumber();//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. tm.getSimState();//int
  110. /*
  111. *唯一的用户ID:
  112. *例如:IMSI(国际移动用户识别码)foraGSMphone.
  113. *需要权限:READ_PHONE_STATE
  114. */
  115. tm.getSubscriberId();//String
  116. /*
  117. *取得和语音邮件相关的标签,即为识别符
  118. *需要权限:READ_PHONE_STATE
  119. */
  120. tm.getVoiceMailAlphaTag();//String
  121. /*
  122. *获取语音邮件号码:
  123. *需要权限:READ_PHONE_STATE
  124. */
  125. tm.getVoiceMailNumber();//String
  126. /*
  127. *ICC卡是否存在
  128. */
  129. tm.hasIccCard();//boolean
  130. /*
  131. *是否漫游:
  132. *(在GSM用途下)
  133. */
  134. tm.isNetworkRoaming();//

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

[java] view plain
  1. getPackageManager().getPackageInfo(packageName,0).versionCode

可以用Context.gerPackageName()取得packageName
2.versionName
[java] view plain
  1. getPackageManager().getPackageInfo(packageName,0).versionName
  2. getPackageManager().getPackageInfo(pName,PackageManager.GET_CONFIGURATIONS);


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

[java] view plain
  1. publicbooleancheckBrowser(StringpackageName){
  2. if(packageName==null||"".equals(packageName))
  3. returnfalse;
  4. try{
  5. ApplicationInfoinfo=getPackageManager().getApplicationInfo(
  6. packageName,PackageManager.GET_UNINSTALLED_PACKAGES);
  7. returntrue;
  8. }catch(NameNotFoundExceptione){
  9. returnfalse;
  10. }
  11. }

2.通过Activity判断
[java] view plain
  1. Intentintent=newIntent(Intent.ACTION_VIEW);
  2. intent.setClassName("com.android.settings",//$NON-NLS-1$
  3. "com.android.settings.InstalledAppDetails");//$NON-NLS-1$
  4. intent.putExtra("com.android.settings.ApplicationPkgName",//$NON-NLS-1$
  5. mCurrentPkgName);
  6. Listacts=getPackageManager().queryIntentActivities(
  7. intent,0);
  8. if(acts.size()>0){
  9. startActivity(intent);
  10. }else{
  11. Toast.makeText(this,
  12. getString(R.string.failed_to_resolve_activity),
  13. Toast.LENGTH_SHORT).show();
  14. }

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

[java] view plain
  1. importandroid.util.DisplayMetrics;

得到实例对象。
[java] view plain
  1. DisplayMetricsdm=newDisplayMetrics();
  2. getWindowManager().getDefaultDisplay().getMetrics(dm);

得到手机屏幕高度:
[java] view plain
  1. dm.heightPixels;

得到手机屏幕宽度:
[java] view plain
  1. dm.widthPixels;

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

6)获取CPU序列号

[java] view plain
  1. /**
  2. *获取CPU序列号
  3. *
  4. *@returnCPU序列号(16位)
  5. *读取失败为"0000000000000000"
  6. */
  7. publicstaticStringgetCPUSerial(){
  8. Stringstr="",strCPU="",cpuAddress="0000000000000000";
  9. try{
  10. //读取CPU信息
  11. Processpp=Runtime.getRuntime().exec("cat/proc/cpuinfo");
  12. InputStreamReaderir=newInputStreamReader(pp.getInputStream());
  13. LineNumberReaderinput=newLineNumberReader(ir);
  14. //查找CPU序列号
  15. for(inti=1;i
  16. str=input.readLine();
  17. if(str!=null){
  18. //查找到序列号所在行
  19. if(str.indexOf("Serial")>-1){
  20. //提取序列号
  21. strCPU=str.substring(str.indexOf(":")+1,
  22. str.length());
  23. //去空格
  24. cpuAddress=strCPU.trim();
  25. break;
  26. }
  27. }else{
  28. //文件结尾
  29. break;
  30. }
  31. }
  32. }catch(IOExceptionex){
  33. //赋予默认值
  34. ex.printStackTrace();
  35. }
  36. returncpuAddress;
  37. }

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

[java] view plain
  1. StringserviceString=Context.LOCATION_SERVICE;
  2. LocationManagerLocationManager=(LocationManager)getSystemService(serviceString);

2.选择定位方法
2.1 GPS_PROVIDER: GPS
2.2 NETWORK_PROVIDER: NETWORK
以network为例:
[java] view plain
  1. Stringprovider=LocationManager.NETWORK_PROVIDER
  2. Locationlocation=locationManager.getLaskKnownLocation(provider);
  3. doublelat=location.getLatitude();
  4. doublelng=location.getLongitude();

8)当前时间和时区

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

TimeZone.getDefault();

转载自http://blog.csdn.net/wenlele/article/details/6316750

更多相关文章

  1. 总结系列-Android的文件系统
  2. Android(安卓)获取系统权限的代码
  3. 获取Android版本信息和电话信息
  4. android studio更新提示网络连接失败的解决办法
  5. Android(安卓)根据IP地址获取城市
  6. Android(安卓)铃声和音量的获取程序
  7. Android(安卓)获取经纬度。2018年写
  8. Android(安卓)获取当前日期 时间
  9. Delphi获取Android下GPS的NMEA 0183数据

随机推荐

  1. Android(安卓)一起来看看知乎开源的图片
  2. 浅谈Android(安卓)Studio 3.0 工具新特性
  3. 【Android】Android防止过快点击造成多次
  4. android 自定义坐标曲线图
  5. 写给VR手游开发小白的教程:(五)Cardboard插
  6. Android进程管理详解
  7. 应用基础
  8. android小问题-去除状态栏下的阴影
  9. [翻译]Android单手指缩放-第二部分(Androi
  10. Android免Root权限Hook系统函数修改程序