一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android 获取手机信息实例详解

时间:2017-03-03 编辑:简简单单 来源:一聚教程网

Android 获取手机信息

应用信息:包名、版本号、版本名,手机是否有Root权限

手机信息:手机屏幕宽和高、当前可用内存大小、总内存大小、IMEI号、IESI号、手机型号、手机品牌、手机MacAdd、CPU型号、CPU频率

开门见山,以下是Java代码,XML只有一个TextView显示信息。

 代码如下复制代码

packagecom.example.getphoneinfo;

  

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileReader;

importjava.io.IOException;

  

importandroid.app.Activity;

importandroid.content.Context;

importandroid.net.wifi.WifiInfo;

importandroid.net.wifi.WifiManager;

importandroid.os.Bundle;

importandroid.os.Environment;

importandroid.os.StatFs;

importandroid.telephony.TelephonyManager;

importandroid.text.format.Formatter;

importandroid.view.Menu;

importandroid.widget.TextView;

  

publicclassMainActivityextendsActivity {

  

  TextView mPhoneInfo;

  @Override

  protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

      

    initView();

    initData();

      

  }

  

  privatevoidinitData() {

    // TODO Auto-generated method stub

    getAvailMemory();// 获取手机可用内存大小

    getTotalMemory();//获取总内存大小

    getHeightAndWidth();//获取屏幕宽高

    getInfo();//获取IMEI号,IESI号,手机型号 

    getMacAddress();//获取IMEI号,IESI号,手机型号 

    getCpuInfo();//手机CPU信息

    getPackage();//获取软件包名,版本名,版本号

    isRoot();//手机是否root

    String text = getHeightAndWidth() +

        "\n"+ getTotalMemory() +

        "\n"+ getAvailMemory() + 

        "\n"+ getInfo() + 

        "\n"+ getMacAddress() + 

        "\n"+ getCpuInfo() +

        "\n"+ getPackage() +

        "\n"+ isRoot();

    mPhoneInfo.setText(text);

      

  }

    

    

  /**

   * 获取软件包名,版本名,版本号

   */

  privateString getPackage(){

    try{

      String pkName =this.getPackageName();

      String versionName =this.getPackageManager().getPackageInfo(

          pkName,0).versionName;

      intversionCode =this.getPackageManager()

          .getPackageInfo(pkName,0).versionCode;

      return"Package:"+ pkName +"\nversionName:"+ versionName +"\nversionCode:"+ versionCode;

    }catch(Exception e) {

    }

    returnnull;

  }

    

  /**

   * 获取手机是否root信息

   * @return

   */

  privateString isRoot(){

    String bool ="Root:false";

    try{

      if((!newFile("/system/bin/su").exists()) && (!newFile("/system/xbin/su").exists())){

        bool ="Root:false";

      }else{

        bool ="Root:true";

      }      

    }catch(Exception e) {

    } 

    returnbool;

  }

    

  /**

   * 获取android当前可用内存大小 

   */ 

  privateString getAvailMemory() {// 获取android当前可用内存大小        

    File path = Environment.getDataDirectory(); 

    StatFs stat =newStatFs(path.getPath()); 

    longblockSize = stat.getBlockSize(); 

    longavailableBlocks = stat.getAvailableBlocks(); 

    return"当前可用内存:"+ Formatter.formatFileSize(MainActivity.this, blockSize * availableBlocks);

    }  

     

  /**

   * 获得系统总内存

   */ 

  privateString getTotalMemory() { 

    String str1 ="/proc/meminfo";// 系统内存信息文件  

    String str2; 

    String[] arrayOfString; 

    longinitial_memory =0;   

    try{ 

    FileReader localFileReader =newFileReader(str1); 

    BufferedReader localBufferedReader =newBufferedReader( 

    localFileReader,8192); 

    str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小  

     

    arrayOfString = str2.split("\\s+"); 

    initial_memory = Integer.valueOf(arrayOfString[1]).intValue() *1024;// 获得系统总内存,单位是KB,乘以1024转换为Byte  

    localBufferedReader.close();   

    }catch(IOException e) { 

    } 

    return"总内存大小:"+ Formatter.formatFileSize(getBaseContext(), initial_memory);// Byte转换为KB或者MB,内存大小规格化  

  } 

     

  /**

   * 获得手机屏幕宽高

   * @return

   */ 

  publicString getHeightAndWidth(){ 

    intwidth=getWindowManager().getDefaultDisplay().getWidth(); 

    intheigth=getWindowManager().getDefaultDisplay().getHeight(); 

    String str ="Width:"+ width+"\nHeight:"+heigth+""; 

    returnstr; 

    } 

  /**

   * 获取IMEI号,IESI号,手机型号

   */ 

  privateString getInfo() { 

     TelephonyManager mTm = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE); 

      String imei = mTm.getDeviceId(); 

      String imsi = mTm.getSubscriberId(); 

      String mtype = android.os.Build.MODEL;// 手机型号 

      String mtyb= android.os.Build.BRAND;//手机品牌 

      String numer = mTm.getLine1Number();// 手机号码,有的可得,有的不可得 

    return"手机IMEI号:"+imei+"\n手机IESI号:"+imsi+"\n手机型号:"+mtype+"\n手机品牌:"+mtyb+"\n手机号码"+numer; 

    } 

  /**

   * 获取手机MAC地址

   * 只有手机开启wifi才能获取到mac地址

   */ 

  privateString getMacAddress(){ 

      String result =""; 

      WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 

      WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 

      result = wifiInfo.getMacAddress(); 

      return"手机macAdd:"+ result; 

    } 

  /**

   * 手机CPU信息

   */ 

  privateString getCpuInfo() { 

      String str1 ="/proc/cpuinfo"; 

      String str2 =""; 

      String[] cpuInfo = {"",""};//1-cpu型号 //2-cpu频率 

      String[] arrayOfString; 

      try{ 

        FileReader fr =newFileReader(str1); 

        BufferedReader localBufferedReader =newBufferedReader(fr,8192); 

        str2 = localBufferedReader.readLine(); 

        arrayOfString = str2.split("\\s+"); 

        for(inti =2; i < arrayOfString.length; i++) { 

          cpuInfo[0] = cpuInfo[0] + arrayOfString[i] +" "; 

        } 

        str2 = localBufferedReader.readLine(); 

        arrayOfString = str2.split("\\s+"); 

        cpuInfo[1] += arrayOfString[2]; 

        localBufferedReader.close(); 

      }catch(IOException e) { 

      } 

      return"CPU型号:"+ cpuInfo[0] +"\nCPU频率:"+ cpuInfo[1]; 

    } 

  

  

  publicvoidinitView() {

    // TODO Auto-generated method stub

    mPhoneInfo = (TextView)findViewById(R.id.id_tv_phone_info);

  }

  

  @Override

  publicbooleanonCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.main, menu);

    returntrue;

  }

  

}

注意:添加权限

 代码如下复制代码

 

  

以下是效果视图:

热门栏目