| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
yne7
10年前发布

获取Android手机信息的工具类PhoneHelper

获取手机的一些基本信息,比如生产商家、固件版本、手机型号、手机号码、屏幕分辨率等

import java.io.File;  import java.util.List;  import java.util.regex.Matcher;  import java.util.regex.Pattern;  import android.content.Context;  import android.content.Intent;  import android.content.pm.ApplicationInfo;  import android.content.pm.PackageManager;  import android.net.ConnectivityManager;  import android.net.NetworkInfo;  import android.net.Uri;  import android.os.Environment;  import android.telephony.TelephonyManager;  import android.text.TextUtils;  import android.util.DisplayMetrics;  import android.util.TypedValue;  import android.view.Display;  import android.view.Gravity;  import android.view.WindowManager;  import android.widget.Toast;    public class PhoneHelper {      private  Context context=App.getInstance();      private static PhoneHelper util;      public static PhoneHelper getInstance() {          if (util == null) {              util = new PhoneHelper();          }          return util;        }        private PhoneHelper() {          super();      }        /**       * 生产商家       *        * @return       */      public String getManufacturer() {          return android.os.Build.MANUFACTURER;      }        /**       * 获得固件版本       *        * @return       */      public String getRelease() {          return android.os.Build.VERSION.RELEASE;      }        /**       * 获得手机型号       *        * @return       */      public String getModel() {          return android.os.Build.MODEL;      }        /**       * 获得手机品牌       *        * @return       */      public String getBrand() {          return android.os.Build.BRAND;      }        /**       * 获取手机运营商       */      public String getSimOperatorName() {          TelephonyManager tm = (TelephonyManager) context                  .getSystemService(Context.TELEPHONY_SERVICE);            return tm.getSimOperatorName();       }        /**       * 得到本机手机号码,未安装SIM卡或者SIM卡中未写入手机号,都会获取不到       * @return       */      public  String getThisPhoneNumber() {          TelephonyManager tm = (TelephonyManager) context                  .getSystemService(Context.TELEPHONY_SERVICE);          String number = tm.getLine1Number();            return  number;       }        /**       * 是否是电话号码       *        * @param phonenumber       * @return       */      public boolean isPhoneNumber(String phonenumber) {          Pattern pa = Pattern.compile("^[1][3,4,5,8,7][0-9]{9}$");          Matcher ma = pa.matcher(phonenumber);          return ma.matches();      }        /**       * 打电话       *        * @param phone       * @param context       */      public void doPhone(String phone) {          Intent phoneIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"                  + phone));          context.startActivity(phoneIntent);      }        /**       * 发短信       *        * @param phone       * @param content       * @param c       */      public void doSMS(String phone, String content) {          Uri uri = null;          if (!TextUtils.isEmpty(phone))              uri = Uri.parse("smsto:" + phone);          Intent intent = new Intent(Intent.ACTION_SENDTO, uri);          intent.putExtra("sms_body", content);          context.startActivity(intent);      }        /**       * 得到屏幕信息       * getScreenDisplayMetrics().heightPixels 屏幕高       * getScreenDisplayMetrics().widthPixels 屏幕宽       * @return       */      public DisplayMetrics getScreenDisplayMetrics() {          WindowManager manager = (WindowManager) context                  .getSystemService(Context.WINDOW_SERVICE);            DisplayMetrics displayMetrics = new DisplayMetrics();          Display display = manager.getDefaultDisplay();          display.getMetrics(displayMetrics);            return displayMetrics;        }        /**       * 屏幕分辨率       *        * @param drame       * @return       */      public float getDip() {            return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1,                  context.getResources().getDisplayMetrics());      }        /**       * 安装apk       */      public void instance(File file) {          Intent intent = new Intent();          intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);          intent.setAction(android.content.Intent.ACTION_VIEW);          intent.setDataAndType(Uri.fromFile(file),                  "application/vnd.android.package-archive");          context.startActivity(intent);      }        /**       * 是否安装了       *        * @param packageName       * @return       */      public boolean isInstall(String packageName) {          PackageManager packageManager = context.getPackageManager();          List<ApplicationInfo> packs = packageManager                  .getInstalledApplications(PackageManager.GET_ACTIVITIES);          for (ApplicationInfo info : packs) {              if (info.packageName.equals(packageName))                  return true;          }          return false;      }        /**       * 检测网络是否可用       *        * @return       */      public boolean isNetworkConnected() {          ConnectivityManager cm = (ConnectivityManager) context                  .getSystemService(Context.CONNECTIVITY_SERVICE);          NetworkInfo ni = cm.getActiveNetworkInfo();          return ni != null && ni.isConnected();      }        /**       * 将Toast放在屏幕上方       *        * @param message       */      public void show(String message) {          Toast toast = Toast.makeText(context, message, Toast.LENGTH_LONG);          toast.setGravity(Gravity.TOP, 0,                  (getScreenDisplayMetrics().heightPixels / 5));          toast.show();      }        /**       * 调用浏览器打开       *        * @param activity       * @param url       */      public void openWeb(String url) {          Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url));          intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);          context.startActivity(intent);        }          /**       * 是否有外存卡       *        * @return       */      public boolean isExistExternalStore() {          if (Environment.getExternalStorageState().equals(                  Environment.MEDIA_MOUNTED)) {              return true;          } else {              return false;          }      }        /**       * 得到sd卡路径       *        * @return       */      public String getExternalStorePath() {          if (isExistExternalStore()) {              return Environment.getExternalStorageDirectory().getAbsolutePath();          }          return null;      }        /**       * 得到网络类型,0是未知或未连上网络,1为WIFI,2为2g,3为3g,4为4g       * @return       */      public  int getNetType() {          ConnectivityManager connectMgr = (ConnectivityManager) context                  .getSystemService(Context.CONNECTIVITY_SERVICE);            int type = 0;          NetworkInfo info = connectMgr.getActiveNetworkInfo();          if (info == null||!info.isConnected()) {              return type;          }            switch (info.getType()) {          case ConnectivityManager.TYPE_WIFI:              type = 1;              break;          case ConnectivityManager.TYPE_MOBILE:              type = getNetworkClass(info.getSubtype());              break;            default:              type=0;              break;          }            return type;      }        /**       * 判断数据连接的类型       * @param networkType       * @return       */      public int getNetworkClass(int networkType) {          switch (networkType) {          case TelephonyManager.NETWORK_TYPE_GPRS:          case TelephonyManager.NETWORK_TYPE_EDGE:          case TelephonyManager.NETWORK_TYPE_CDMA:          case TelephonyManager.NETWORK_TYPE_1xRTT:          case TelephonyManager.NETWORK_TYPE_IDEN:          case TelephonyManager.NETWORK_TYPE_UNKNOWN:                return 2;          case TelephonyManager.NETWORK_TYPE_UMTS:          case TelephonyManager.NETWORK_TYPE_EVDO_0:          case TelephonyManager.NETWORK_TYPE_EVDO_A:          case TelephonyManager.NETWORK_TYPE_HSDPA:          case TelephonyManager.NETWORK_TYPE_HSUPA:          case TelephonyManager.NETWORK_TYPE_HSPA:          case TelephonyManager.NETWORK_TYPE_EVDO_B:          case TelephonyManager.NETWORK_TYPE_EHRPD:              return 3;          case TelephonyManager.NETWORK_TYPE_LTE:              return 4;          default:              return 0;          }      }  }