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

   

[java]  view plain copy
  1. import android.os.Build;    
  2. // .....    
  3.     Build bd = new Build();    
  4.     String model = bd.MODEL;   
  5.     android.os.Build.MODEL   
  6.     android.os.Build.VERSION.RELEASE   

 

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

[java:showcolumns:firstline[0]]  view plain copy ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  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.    * Return null if device ID is not available.  
  17.    */   
  18.   tm.getDeviceId();//String   
  19.   /*  
  20.    * 设备的软件版本号:  
  21.    * 例如:the IMEI/SV(software version) for GSM phones.  
  22.    * Return null if the software version is not available.  
  23.    */   
  24.   tm.getDeviceSoftwareVersion();//String   
  25.   /*  
  26.    * 手机号:  
  27.    * GSM手机的 MSISDN.  
  28.    * Return null if it is unavailable.  
  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(mobile country code + mobile network code)  
  45.    * 注意:仅当用户已在网络注册时有效。  
  46.    *    在CDMA网络中结果也许不可靠。  
  47.    */   
  48.   tm.getNetworkOperator();//String   
  49.   /*  
  50.    * 按照字母次序的current registered operator(当前已注册的用户)的名字  
  51.    * 注意:仅当用户已在网络注册时有效。  
  52.    *    在CDMA网络中结果也许不可靠。  
  53.    */   
  54.   tm.getNetworkOperatorName();//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.   tm.getNetworkType();//int   
  70.   /*  
  71.    * 手机类型:  
  72.    * 例如: PHONE_TYPE_NONE  无信号  
  73.      PHONE_TYPE_GSM   GSM信号  
  74.      PHONE_TYPE_CDMA  CDMA信号  
  75.    */   
  76.   tm.getPhoneType();//int   
  77.   /*  
  78.    * Returns the ISO country code equivalent for the SIM provider's country code.  
  79.    * 获取ISO国家码,相当于提供SIM卡的国家码。  
  80.    *  
  81.    */   
  82.   tm.getSimCountryIso();//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.   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(国际移动用户识别码) for a GSM phone.  
  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:showcolumns:firstline[0]]  view plain copy ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. getPackageManager().getPackageInfo(packageName, 0).versionCode   
 
    可以用Context.gerPackageName()取得packageName 
    2.versionName 
    [java:showcolumns:firstline[0]]  view plain copy ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. getPackageManager().getPackageInfo(packageName, 0).versionName      
  2.     getPackageManager().getPackageInfo(pName, PackageManager.GET_CONFIGURATIONS);   


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

[java:showcolumns:firstline[0]]  view plain copy ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. public boolean checkBrowser(String packageName) {    
  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 (NameNotFoundException e) {    
  9.             return false;    
  10.         }    
  11.     }    
   
    2.通过Activity判断 
    [java:showcolumns:firstline[0]]  view plain copy ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. Intent intent = new Intent(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.     List acts = 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 copy
  1. import android.util.DisplayMetrics;   
 
    得到实例对象。 
    [java]  view plain copy
  1. DisplayMetrics dm = new DisplayMetrics();     
  2.     getWindowManager().getDefaultDisplay().getMetrics(dm);  
  
    得到手机屏幕高度: 
    [java]  view plain copy
  1. dm.heightPixels;   
 
    得到手机屏幕宽度: 
    [java]  view plain copy
  1. dm.widthPixels;   
 

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

6)获取CPU序列号

[java:showcolumns:firstline[0]]  view plain copy ·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. /**  
  2.   * 获取CPU序列号  
  3.   *  
  4.   * @return CPU序列号(16位)  
  5.   * 读取失败为"0000000000000000"  
  6.   */   
  7. public static String getCPUSerial() {   
  8.         String str = "", strCPU = "", cpuAddress = "0000000000000000";   
  9.         try {   
  10.                 //读取CPU信息   
  11.                 Process pp = Runtime.getRuntime().exec("cat /proc/cpuinfo");   
  12.                 InputStreamReader ir = new InputStreamReader(pp.getInputStream());   
  13.                 LineNumberReader input = new LineNumberReader(ir);   
  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.                                         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 (IOException ex) {   
  33.                 //赋予默认值   
  34.                 ex.printStackTrace();   
  35.         }   
  36.         return cpuAddress;   
  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 lat = location.getLatitude();   
  4.     double lng = location.getLongitude();   

8)当前时间和时区

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

更多相关文章

  1. Android从asset中获取drawable
  2. android获取手机信息大全
  3. Android(安卓)获取天气预报
  4. Android(安卓)Studio 基础控件使用
  5. 获取 + 查看 Android(安卓)源码的 方法
  6. Android坐标系、视图坐标系与触控事件(MotionEvent)
  7. 腾讯面试官:Binder的系统服务是如何获取的?
  8. Android真响应式架构——数据流动性
  9. 二十四、Android文件的读写

随机推荐

  1. 在Android上优雅的申请权限
  2. 横竖屏优化
  3. 阿里ctf-2014 android 第三题——andriod
  4. 详解 Android(安卓)Views 元素的 layout_
  5. Android范例编程一:获取地理位置
  6. 说说Android的MVP模式
  7. autoMonkey框架原理与应用(一):Monkey基础知
  8. 5.【小萌伴Android】原生小游戏及其实现(
  9. Android(安卓)自学之拖动条SeekBar
  10. Android(安卓)个人开发者接入支付功能