成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android中怎么獲取設(shè)備狀態(tài)信息

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Android中怎么獲取設(shè)備狀態(tài)信息,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

為虎林等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及虎林網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、虎林網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

1 通過build獲取手機(jī)硬件信息

  • 運(yùn)用反射獲取Build信息,然后從build中得到對(duì)應(yīng)字段的值。這種情況適用于獲取所有的build信息。

  • 或者直接調(diào)用Build類直接拿里面的字段名,如:android.os.Build.MODEL; // 手機(jī)型號(hào) 。這是為了獲取單獨(dú)某個(gè)手機(jī)信息的方法,直接調(diào)用Build的字段即可拿到對(duì)應(yīng)信息,簡(jiǎn)單快捷。

  • 別忘了加權(quán)限

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

下面是Build類的字段所對(duì)應(yīng)的信息

String BOARD    The name of the underlying board, like "goldfish".基板名
String BOOTLOADER The system bootloader version number.
String BRAND    The brand (e.g., carrier) the software is customized for, if any.品牌名
String CPU_ABI   The name of the instruction set (CPU type + ABI convention) of native code.
String CPU_ABI2  The name of the second instruction set (CPU type + ABI convention) of native code.
String DEVICE   The name of the industrial design.品牌型號(hào)名,如小米4對(duì)應(yīng)cancro
String DISPLAY   A build ID string meant for displaying to the user
String FINGERPRINT A string that uniquely identifies this build.包含制造商,設(shè)備名,系統(tǒng)版本等諸多信息
String HARDWARE  The name of the hardware (from the kernel command line or /proc).
String HOST   
String ID     Either a changelist number, or a label like "M4-rc20".
String MANUFACTURER  The manufacturer of the product/hardware.
String MODEL    The end-user-visible name for the end product.
String PRODUCT   The name of the overall product.
String RADIO    The radio firmware version number.
String SERIAL   A hardware serial number, if available.
String TAGS    Comma-separated tags describing the build, like "unsigned,debug".
long  TIME    當(dāng)前時(shí)間,毫秒值
String TYPE    The type of build, like "user" or "eng".
String UNKNOWN   Value used for when a build property is unknown.
String USER
//運(yùn)用反射得到build類里的字段
 Field[] fields = Build.class.getDeclaredFields();
    //遍歷字段名數(shù)組
    for (Field field : fields) {
      try {
        //將字段都設(shè)為public可獲取
        field.setAccessible(true);
        //filed.get(null)得到的即是設(shè)備信息
        haspmap.put(field.getName(), field.get(null).toString());
        Log.d("CrashHandler", field.getName() + " : " + field.get(null));
      } catch (Exception e) {
      }
    }

下面是小米4對(duì)應(yīng)的設(shè)備信息

D/CrashHandler: BOARD : MSM8974
D/CrashHandler: BOOTLOADER : unknown
D/CrashHandler: BRAND : Xiaomi
D/CrashHandler: CPU_ABI : armeabi-v7a
D/CrashHandler: CPU_ABI2 : armeabi
D/CrashHandler: DEVICE : cancro
D/CrashHandler: DISPLAY : MMB29M
D/CrashHandler: FINGERPRINT : Xiaomi/cancro_wc_lte/cancro:6.0.1/MMB29M/V8.1.3.0.MXDCNDI:user/release-keys
D/CrashHandler: HARDWARE : qcom
D/CrashHandler: HOST : c3-miui-ota-bd43
D/CrashHandler: ID : MMB29M
D/CrashHandler: IS_DEBUGGABLE : false
D/CrashHandler: MANUFACTURER : Xiaomi
D/CrashHandler: MODEL : MI 4LTE
D/CrashHandler: PRODUCT : cancro_wc_lte
D/CrashHandler: RADIO : unknown
//設(shè)備的序列號(hào)碼-SERIAL
D/CrashHandler: SERIAL : abcdefgh
D/CrashHandler: SUPPORTED_32_BIT_ABIS : [Ljava.lang.String;@76b6d2b
D/CrashHandler: SUPPORTED_64_BIT_ABIS : [Ljava.lang.String;@e42c588
D/CrashHandler: SUPPORTED_ABIS : [Ljava.lang.String;@9cdbb21
D/CrashHandler: TAG : Build
D/CrashHandler: TAGS : release-keys
D/CrashHandler: TIME : 1478606340000
D/CrashHandler: TYPE : user
D/CrashHandler: UNKNOWN : unknown
D/CrashHandler: USER : builder

2.通過getSystemService()來獲取Ip地址

Context.getSystemService()這個(gè)方法是非常實(shí)用的方法,只須在參數(shù)里輸入一個(gè)String 字符串常量就可得到對(duì)應(yīng)的服務(wù)管理方法,可以用來獲取絕大部分的系統(tǒng)信息,各個(gè)常量對(duì)應(yīng)的含義如下。

WINDOW_SERVICE (“window”)
The top-level window manager in which you can place custom windows. The returned object is a WindowManager.

LAYOUT_INFLATER_SERVICE (“l(fā)ayout_inflater”)
A LayoutInflater for inflating layout resources in this context.

ACTIVITY_SERVICE (“activity”)
A ActivityManager for interacting with the global activity state of the system.

POWER_SERVICE (“power”)
A PowerManager for controlling power management.

ALARM_SERVICE (“alarm”)
A AlarmManager for receiving intents at the time of your choosing.
NOTIFICATION_SERVICE (“notification”)
A NotificationManager for informing the user of background events.

KEYGUARD_SERVICE (“keyguard”)
A KeyguardManager for controlling keyguard.

LOCATION_SERVICE (“l(fā)ocation”)
A LocationManager for controlling location (e.g., GPS) updates.

SEARCH_SERVICE (“search”)
A SearchManager for handling search.

VIBRATOR_SERVICE (“vibrator”)
A Vibrator for interacting with the vibrator hardware.

CONNECTIVITY_SERVICE (“connection”)
A ConnectivityManager for handling management of network connections.

WIFI_SERVICE (“wifi”)
A WifiManager for management of Wi-Fi connectivity.

WIFI_P2P_SERVICE (“wifip2p”)
A WifiP2pManager for management of Wi-Fi Direct connectivity.

INPUT_METHOD_SERVICE (“input_method”)
An InputMethodManager for management of input methods.

UI_MODE_SERVICE (“uimode”)
An UiModeManager for controlling UI modes.

DOWNLOAD_SERVICE (“download”)
A DownloadManager for requesting HTTP downloads

BATTERY_SERVICE (“batterymanager”)
A BatteryManager for managing battery state

JOB_SCHEDULER_SERVICE (“taskmanager”)
A JobScheduler for managing scheduled tasks

NETWORK_STATS_SERVICE (“netstats”)
A NetworkStatsManager for querying network usage statistics.
Note: System services obtained via this API may be closely associated with the Context in which they are obtained from. In general, do not share the service objects between various different contexts (Activities, Applications, Services, Providers, etc.)

Parameters
name
The name of the desired service.

Returns
The service or null if the name does not exist.

要獲取IP地址需要用到Context.CONNECTIVITY_SERVICE,這個(gè)常量所對(duì)應(yīng)的網(wǎng)絡(luò)連接的管理方法。

代碼如下需要權(quán)限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
/**獲得IP地址,分為兩種情況,一是wifi下,二是移動(dòng)網(wǎng)絡(luò)下,得到的ip地址是不一樣的*/
  public static String getIPAddress() {
    Context context=MyApp.getContext();
    NetworkInfo info = ((ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    if (info != null && info.isConnected()) {
      if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//當(dāng)前使用2G/3G/4G網(wǎng)絡(luò)
        try {
          //Enumeration<NetworkInterface> en=NetworkInterface.getNetworkInterfaces();
          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) {
                return inetAddress.getHostAddress();
              }
            }
          }
        } catch (SocketException e) {
          e.printStackTrace();
        }
      } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {//當(dāng)前使用無線網(wǎng)絡(luò)
        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        //調(diào)用方法將int轉(zhuǎn)換為地址字符串
        String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());//得到IPV4地址
        return ipAddress;
      }
    } else {
      //當(dāng)前無網(wǎng)絡(luò)連接,請(qǐng)?jiān)谠O(shè)置中打開網(wǎng)絡(luò)
    }
    return null;
  }
  /**
   * 將得到的int類型的IP轉(zhuǎn)換為String類型
   * @param ip
   * @return
   */
  public static String intIP2StringIP(int ip) {
    return (ip & 0xFF) + "." +
        ((ip >> 8) & 0xFF) + "." +
        ((ip >> 16) & 0xFF) + "." +
        (ip >> 24 & 0xFF);
  }

3.獲得Mac地址

我們知道m(xù)ac地址是網(wǎng)卡的唯一標(biāo)識(shí),通過這個(gè)可以判斷網(wǎng)絡(luò)當(dāng)前連接的手機(jī)設(shè)備有幾臺(tái)。代碼如下:

 public static String getMacAddress(){
 /*獲取mac地址有一點(diǎn)需要注意的就是android 6.0版本后,以下注釋方法不再適用,不管任何手機(jī)都會(huì)返回"02:00:00:00:00:00"這個(gè)默認(rèn)的mac地址,這是googel官方為了加強(qiáng)權(quán)限管理而禁用了getSYstemService(Context.WIFI_SERVICE)方法來獲得mac地址。*/
 //    String macAddress= "";
//    WifiManager wifiManager = (WifiManager) MyApp.getContext().getSystemService(Context.WIFI_SERVICE);
//    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
//    macAddress = wifiInfo.getMacAddress();
//    return macAddress;
    String macAddress = null;
    StringBuffer buf = new StringBuffer();
    NetworkInterface networkInterface = null;
    try {
      networkInterface = NetworkInterface.getByName("eth2");
      if (networkInterface == null) {
        networkInterface = NetworkInterface.getByName("wlan0");
      }
      if (networkInterface == null) {
        return "02:00:00:00:00:02";
      }
      byte[] addr = networkInterface.getHardwareAddress();
      for (byte b : addr) {
        buf.append(String.format("%02X:", b));
      }
      if (buf.length() > 0) {
        buf.deleteCharAt(buf.length() - 1);
      }
      macAddress = buf.toString();
    } catch (SocketException e) {
      e.printStackTrace();
      return "02:00:00:00:00:02";
    }
    return macAddress;
  }

4.獲取手機(jī)號(hào)碼、IMEI碼

 /**獲取手機(jī)的IMEI號(hào)碼*/
  public static String getPhoneIMEI() {
    TelephonyManager mTm = (TelephonyManager) MyApp.getContext().getSystemService(Context.TELEPHONY_SERVICE);
    String imei = mTm.getDeviceId();
    String imsi = mTm.getSubscriberId();
    String mtype = android.os.Build.MODEL; // 手機(jī)型號(hào)
    String numer = mTm.getLine1Number(); // 手機(jī)號(hào)碼,有的可得,有的不可得
    return imei;
  }

上述就是小編為大家分享的Android中怎么獲取設(shè)備狀態(tài)信息了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱欄目:Android中怎么獲取設(shè)備狀態(tài)信息
地址分享:http://jinyejixie.com/article0/ggecoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站策劃、定制開發(fā)、ChatGPT、動(dòng)態(tài)網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
从江县| 郁南县| 筠连县| 邵武市| 浦县| 甘泉县| 攀枝花市| 西贡区| 德江县| 汉川市| 邯郸县| 韶山市| 福州市| 石景山区| 格尔木市| 汉川市| 滦平县| 米易县| 板桥市| 修水县| 水富县| 应用必备| 当涂县| 雅江县| 文化| 尚志市| 牡丹江市| 湘潭市| 镇赉县| 漯河市| 青岛市| 砀山县| 杭州市| 巴彦淖尔市| 佳木斯市| 莱芜市| 额尔古纳市| 宁强县| 阳山县| 余江县| 鄂尔多斯市|