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

Android获取手机信息的工具类

程序员文章站 2022-06-29 09:19:39
网上收集的一些获取收集信息的代码,制作成一个工具类,以后可以方便调用。 import java.io.bufferedreader; import java...

网上收集的一些获取收集信息的代码,制作成一个工具类,以后可以方便调用。

import java.io.bufferedreader;
import java.io.filereader;
import java.io.ioexception;

import android.app.activity;
import android.content.context;
import android.content.pm.applicationinfo;
import android.content.pm.packagemanager;
import android.net.wifi.wifiinfo;
import android.net.wifi.wifimanager;
import android.provider.settings;
import android.telephony.telephonymanager;
import android.text.format.formatter;

/**
 * 获取手机信息工具类
 * 
 */
public class phoneutil {

  private static phoneutil instance;

  private telephonymanager tm;
  private activity act;

  private phoneutil(activity act) {
    tm = (telephonymanager) act.getsystemservice(context.telephony_service);
    this.act = act;
  }

  public static phoneutil getinstance(activity act) {
    if (instance == null) {
      instance = new phoneutil(act);
    } else if (instance.act != act) {
      instance = new phoneutil(act);
    }
    return instance;
  }

  /** 是否处于飞行模式 */
  public boolean isairmodeopen() {
    return (settings.system.getint(act.getcontentresolver(), settings.system.airplane_mode_on, 0) == 1 ? true
        : false);
  }

  /** 获取手机号码 */
  public string getphonenumber() {
    return tm == null ? null : tm.getline1number();
  }

  /** 获取网络类型(暂时用不到) */
  public int getnetworktype() {
    return tm == null ? 0 : tm.getnetworktype();
  }

  /** 获取手机sim卡的序列号(imsi) */
  public string getimsi() {
    return tm == null ? null : tm.getsubscriberid();
  }

  /** 获取手机imei */
  public string getimei() {
    return tm == null ? null : tm.getdeviceid();
  }

  /** 获取手机型号 */
  public static string getmodel() {
    return android.os.build.model;
  }

  /** 获取手机品牌 */
  public static string getbrand() {
    return android.os.build.brand;
  }

  /** 获取手机系统版本 */
  public static string getversion() {
    return android.os.build.version.release;
  }

  /** 获得手机系统总内存 */
  public 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(act, initial_memory);// byte转换为kb或者mb,内存大小规格化
  }

  /** 获取手机屏幕宽 */
  public int getscreenwidth() {
    return act.getwindowmanager().getdefaultdisplay().getwidth();
  }

  /** 获取手机屏高宽 */
  public int getscreenheight() {
    return act.getwindowmanager().getdefaultdisplay().getheight();
  }

  /** 获取应用包名 */
  public string getpackagename() {
    return act.getpackagename();
  }

  /**
   * 获取手机mac地址 只有手机开启wifi才能获取到mac地址
   */
  public string getmacaddress() {
    string result = "";
    wifimanager wifimanager = (wifimanager) act.getsystemservice(context.wifi_service);
    wifiinfo wifiinfo = wifimanager.getconnectioninfo();
    result = wifiinfo.getmacaddress();
    return result;
  }

  /**
   * 获取手机cpu信息 //1-cpu型号 //2-cpu频率
   */
  public 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 cpuinfo;
  }

  /** 获取application中的meta-data内容 */
  public string getmetadata(string name) {
    string result = "";
    try {
      applicationinfo appinfo = act.getpackagemanager().getapplicationinfo(getpackagename(),
          packagemanager.get_meta_data);
      result = appinfo.metadata.getstring(name);
    } catch (exception e) {
      e.printstacktrace();
    }
    return result;
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。