当前位置: 移动技术网 > IT编程>移动开发>Android > Android 获取手机信息实例详解

Android 获取手机信息实例详解

2019年07月24日  | 移动技术网IT编程  | 我要评论

android 获取手机信息

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

手机信息:手机屏幕宽和高、当前可用内存大小、总内存大小、imei号、iesi号、手机型号、手机品牌、手机macadd、cpu型号、cpu频率

开门见山,以下是java代码,xml只有一个textview显示信息。



package com.example.getphoneinfo; 
 
import java.io.bufferedreader; 
import java.io.file; 
import java.io.filereader; 
import java.io.ioexception; 
 
import android.app.activity; 
import android.content.context; 
import android.net.wifi.wifiinfo; 
import android.net.wifi.wifimanager; 
import android.os.bundle; 
import android.os.environment; 
import android.os.statfs; 
import android.telephony.telephonymanager; 
import android.text.format.formatter; 
import android.view.menu; 
import android.widget.textview; 
 
public class mainactivity extends activity { 
 
  textview mphoneinfo; 
  @override 
  protected void oncreate(bundle savedinstancestate) { 
    super.oncreate(savedinstancestate); 
    setcontentview(r.layout.activity_main); 
     
    initview(); 
    initdata(); 
     
  } 
 
  private void initdata() { 
    // 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); 
     
  } 
   
   
  /** 
   * 获取软件包名,版本名,版本号 
   */ 
  private string getpackage(){ 
    try { 
      string pkname = this.getpackagename(); 
      string versionname = this.getpackagemanager().getpackageinfo( 
          pkname, 0).versionname; 
      int versioncode = this.getpackagemanager() 
          .getpackageinfo(pkname, 0).versioncode; 
      return "package:" + pkname + "\nversionname:" + versionname + "\nversioncode:" + versioncode; 
    } catch (exception e) { 
    } 
    return null; 
  } 
   
  /** 
   * 获取手机是否root信息 
   * @return 
   */ 
  private string isroot(){ 
    string bool = "root:false"; 
    try{ 
      if ((!new file("/system/bin/su").exists()) && (!new file("/system/xbin/su").exists())){ 
        bool = "root:false"; 
      } else { 
        bool = "root:true"; 
      }       
    } catch (exception e) { 
    }  
    return bool; 
  } 
   
  /** 
   * 获取android当前可用内存大小  
   */  
  private string getavailmemory() {// 获取android当前可用内存大小         
    file path = environment.getdatadirectory();  
    statfs stat = new statfs(path.getpath());  
    long blocksize = stat.getblocksize();  
    long availableblocks = stat.getavailableblocks();  
    return "当前可用内存:" + formatter.formatfilesize(mainactivity.this, blocksize * availableblocks); 
    }   
    
  /** 
   * 获得系统总内存 
   */  
  private string gettotalmemory() {  
    string str1 = "/proc/meminfo";// 系统内存信息文件   
    string str2;  
    string[] arrayofstring;  
    long initial_memory = 0;    
    try {  
    filereader localfilereader = new filereader(str1);  
    bufferedreader localbufferedreader = new bufferedreader(  
    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 
   */  
  public string getheightandwidth(){  
    int width=getwindowmanager().getdefaultdisplay().getwidth();  
    int heigth=getwindowmanager().getdefaultdisplay().getheight();  
    string str = "width:" + width+"\nheight:"+heigth+"";  
    return str;  
    }  
  /** 
   * 获取imei号,iesi号,手机型号 
   */  
  private string 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地址 
   */  
  private string getmacaddress(){  
      string result = "";  
      wifimanager wifimanager = (wifimanager) getsystemservice(context.wifi_service);  
      wifiinfo wifiinfo = wifimanager.getconnectioninfo();  
      result = wifiinfo.getmacaddress();  
      return "手机macadd:" + result;  
    }  
  /** 
   * 手机cpu信息 
   */  
  private string getcpuinfo() {  
      string str1 = "/proc/cpuinfo";  
      string str2 = "";  
      string[] cpuinfo = {"", ""}; //1-cpu型号 //2-cpu频率  
      string[] arrayofstring;  
      try {  
        filereader fr = new filereader(str1);  
        bufferedreader localbufferedreader = new bufferedreader(fr, 8192);  
        str2 = localbufferedreader.readline();  
        arrayofstring = str2.split("\\s+");  
        for (int i = 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];  
    }  
 
 
  public void initview() { 
    // todo auto-generated method stub 
    mphoneinfo = (textview)findviewbyid(r.id.id_tv_phone_info); 
  } 
 
  @override 
  public boolean oncreateoptionsmenu(menu menu) { 
    // inflate the menu; this adds items to the action bar if it is present. 
    getmenuinflater().inflate(r.menu.main, menu); 
    return true; 
  } 
 
} 

注意:添加权限





<uses-permission android:name="android.permission.access_wifi_state" />  
  <uses-permission android:name="android.permission.read_phone_state" /> 

以下是效果视图:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网