«

获取手机信息的工具类

时间:2024-3-2 18:08     作者:韩俊     分类: Android


获取手机各项信息,注释很全

[java] view
plaincopy

/**

  • 用于获取电话信息
  • @author lxj
  • 需要加入权限<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    */
    public class PhoneInfo {
    private TelephonyManager telephonyManager;
    /**

    • 国际移动用户识别码
      */
      private String IMSI;
      private Context context;

    public PhoneInfo(Context context){
    this.context = context;
    telephonyManager = (TelephonyManager) context
    .getSystemService(Context.TELEPHONY_SERVICE);
    }

    /**

    • 获取手机号码 (有些手机号无法获取,是因为运营商在SIM中没有写入手机号)
      */
      public String getPhoneNumber() {
      return telephonyManager.getLine1Number();
      }

    /**

    • 获取运营商名称 <BR>
    • <BR>
      */
      public String getProvidersName() {
      String ProvidersName = null;
      // 返回唯一的用户ID;就是这张卡的编号神马的
      IMSI = telephonyManager.getSubscriberId();
      // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
      System.out.println(IMSI);
      if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
      ProvidersName = "中国移动";
      } else if (IMSI.startsWith("46001")) {
      ProvidersName = "中国联通";
      } else if (IMSI.startsWith("46003")) {
      ProvidersName = "中国电信";
      }
      return ProvidersName;
      }

    /**

    • 获取手机sim卡序列号
    • @return
      */
      public String getSimSerial(){
      return telephonyManager.getSimSerialNumber();
      }

    /**

    • 获取手机串号:GSM手机的 IMEI 和 CDMA手机的 MEID
    • @return
      */
      public String getDeviceId(){
      return telephonyManager.getDeviceId();
      }
      /**
    • 获取客户id,在gsm中是imsi号
    • @return
      */
      public String getSubscriberId(){
      return telephonyManager.getSubscriberId();
      }

    /**

    • 获取手机型号
    • @return
      */
      public String getPhoneModel(){
      return android.os.Build.MODEL;
      }

    /**

    • 获取手机厂商
    • @return
      */
      public String getPhoneManufacturer(){
      return android.os.Build.MANUFACTURER;
      }

    /**

    • 获取手机分辨率
    • @return
      /
      public String getPhoneDisplay(){
      Display display =((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
      int width = display.getWidth();
      int height = display.getHeight();
      return width + "
      " + height;
      }

    /**

    • 获取当前app版本号
    • @return
      */
      public String getAppVersion(){
      PackageManager packageManager = context.getPackageManager();
      // getPackageName()是你当前类的包名,0代表是获取版本信息
      PackageInfo packInfo = null;
      try {
      packInfo = packageManager.getPackageInfo(context.getPackageName(),0);
      } catch (NameNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return null;
      }
      return packInfo.versionName;
      }

    /**

    • 获取手机IP(Ipv4),在wifi和3g下通用
    • 一定要加上如下权限,否则不会报错,但是获取不到
    • <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    • <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    • @return
      */
      public String getPhoneIp() {
      try {
      for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
      NetworkInterface intf = en.nextElement();
      for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
      InetAddress inetAddress = enumIpAddr.nextElement();
      if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
      //ifs (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet6Address) {
      return inetAddress.getHostAddress().toString();
      }
      }
      }
      } catch (Exception e) {
      }
      return "";
      }

    /**

    • 获取系统版本号
    • @return
      */
      public String getSystemVersion(){
      return Build.VERSION.RELEASE;
      }

}

标签: android

热门推荐