国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中獲取設備的各種信息總結

2019-12-12 05:21:56
字體:
來源:轉載
供稿:網友

一、屏幕分辨率

Display display = getWindowManager().getDefaultDisplay();Point size = new Point();display.getSize(size);int width = size.x;int height = size.y;

或者:

DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metrics);int width = metrics.widthPixels;int height = metrics.heightPixels

上面的代碼是要在能獲取到Activity的情況下使用的,如果無法獲取到Activity,則可以使用一下的代碼:

WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);Display display = wm.getDefaultDisplay();Point point = new Point();display.getSize(point);int width = point.x;int height = point.y;

二、屏幕尺寸

DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);int width=dm.widthPixels;int height=dm.heightPixels;int dens=dm.densityDpi;double wi=(double)width/(double)dens;double hi=(double)height/(double)dens;double x = Math.pow(wi,2);double y = Math.pow(hi,2);double screenInches = Math.sqrt(x+y);

同樣,上面的代碼需要在能獲取到Activity。

三、獲取app名稱

public static String getAppName(Context context) {  String appName = "";  try {    PackageManager packageManager = context.getPackageManager();    ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0);    appName = (String) packageManager.getApplicationLabel(applicationInfo);  } catch (PackageManager.NameNotFoundException e) {    e.printStackTrace();  }  return appName;}

四、獲取設備廠商和設備名稱信息

// 設備廠商String brand = Build.BRAND;// 設備名稱String model = Build.MODEL;

獲取DeviceID,SIM和IMSI

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);String deviceId = tm.getDeviceId();String sim = tm.getSimSerialNumber();String imsi = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE).getSubscriberId();

注意需要在AndroidManifest中添加權限

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

五、獲取網絡狀態

public static String getAPNType(Context context) {  //結果返回值  String netType = "nono_connect";  //獲取手機所有連接管理對象  ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  //獲取NetworkInfo對象  NetworkInfo networkInfo = manager.getActiveNetworkInfo();  //NetworkInfo對象為空 則代表沒有網絡  if (networkInfo == null) {    return netType;  }  //否則 NetworkInfo對象不為空 則獲取該networkInfo的類型  int nType = networkInfo.getType();  if (nType == ConnectivityManager.TYPE_WIFI) {    //WIFI    netType = "wifi";  } else if (nType == ConnectivityManager.TYPE_MOBILE) {    int nSubType = networkInfo.getSubtype();    TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);    //4G    if (nSubType == TelephonyManager.NETWORK_TYPE_LTE        && !telephonyManager.isNetworkRoaming()) {      netType = "4G";    } else if (nSubType == TelephonyManager.NETWORK_TYPE_UMTS || nSubType == TelephonyManager.NETWORK_TYPE_HSDPA || nSubType == TelephonyManager.NETWORK_TYPE_EVDO_0 && !telephonyManager.isNetworkRoaming()) {      netType = "3G";    //2G 移動和聯通的2G為GPRS或EGDE,電信的2G為CDMA    } else if (nSubType == TelephonyManager.NETWORK_TYPE_GPRS || nSubType == TelephonyManager.NETWORK_TYPE_EDGE || nSubType == TelephonyManager.NETWORK_TYPE_CDMA && !telephonyManager.isNetworkRoaming()) {      netType = "2G";    } else {      netType = "2G";    }  }  return netType;}

六、判斷設備是否root

網上有很多判斷方法,但有些會在界面上彈窗提示獲取權限,下面介紹一種無需彈窗判斷設備是否root的方法:

/** 判斷手機是否root,不彈出root請求框<br/> */  public static boolean isRoot() {    String binPath = "/system/bin/su";    String xBinPath = "/system/xbin/su";    if (new File(binPath).exists() && isExecutable(binPath))      return true;    if (new File(xBinPath).exists() && isExecutable(xBinPath))      return true;    return false;  }  private static boolean isExecutable(String filePath) {    Process p = null;    try {      p = Runtime.getRuntime().exec("ls -l " + filePath);      // 獲取返回內容      BufferedReader in = new BufferedReader(new InputStreamReader(          p.getInputStream()));      String str = in.readLine();      if (str != null && str.length() >= 4) {        char flag = str.charAt(3);        if (flag == 's' || flag == 'x')          return true;      }    } catch (IOException e) {      e.printStackTrace();    } finally {      if (p != null) {        p.destroy();      }    }    return false;  }

七、總結

以上就是關于獲取Android中設備各種信息的全部內容,這篇文章對大家開發Android App具有一定參考借鑒價值,希望對大家能有所幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武冈市| 江津市| 镇赉县| 拉孜县| 汾西县| 武陟县| 池州市| 高邮市| 安达市| 洞头县| 梅州市| 武鸣县| 美姑县| 崇礼县| 伊通| 桦川县| 柳州市| 墨玉县| 镇安县| 汶上县| 巩留县| 确山县| 辽宁省| 海南省| 伊川县| 成都市| 石泉县| 中山市| 从化市| 收藏| 依安县| 贞丰县| 张家界市| 阜新| 涪陵区| 苍溪县| 阳西县| 栾川县| 兖州市| 德清县| 宁阳县|