欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 获取手机信息实例详解

程序员文章站 2024-02-18 18:33:58
android 获取手机信息 应用信息:包名、版本号、版本名,手机是否有root权限 手机信息:手机屏幕宽和高、当前可用内存大小、总内存大小、imei号、iesi号...

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" /> 

以下是效果视图:

Android 获取手机信息实例详解

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