首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Android 開發:使用 Java 獲取手機基本資訊(電話號碼、SDK 版本、系統版本、手機型號)

     編輯:Java 相關知識

前言

在 Android 應用開發中,獲取設備的基本資訊是常見需求,例如用於設備唯一標識、適配不同系統版本或收集用戶設備數據。本文將示範如何透過 Java 代碼獲取手機號碼、SDK 版本、Android 系統版本以及手機型號等核心資訊。

核心代碼實現

主要使用 TelephonyManager 類獲取電話相關資訊,以及 android.os.Build 類獲取系統與硬體資訊。

package com.example.deviceinfo;

import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 獲取電話管理服務
        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

        // 1. 獲取手機號碼 (需權限 READ_PHONE_STATE)
        // 注意:部分設備或 SIM 卡可能返回 null
        String phoneNumber = telephonyManager.getLine1Number();
        Log.d("DeviceInfo", "手機號碼: " + phoneNumber);

        // 2. 獲取手機型號
        String phoneModel = Build.MODEL;
        Log.d("DeviceInfo", "手機型號: " + phoneModel);

        // 3. 獲取 SDK 版本 (API Level)
        String sdkVersion = String.valueOf(Build.VERSION.SDK_INT); // 建議使用 SDK_INT
        Log.d("DeviceInfo", "SDK 版本: " + sdkVersion);

        // 4. 獲取系統版本 (如 12, 13, 14)
        String releaseVersion = Build.VERSION.RELEASE;
        Log.d("DeviceInfo", "系統版本: " + releaseVersion);
    }
}

必要權限配置

在 AndroidManifest.xml 中聲明讀取手機狀態的權限,否則 getLine1Number() 會返回 null 或拋出安全異常。

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

提示: Android 6.0 (API 23) 以上還需在運行時動態申請該危險權限。

進階:獲取更多 Build 資訊

Build 類提供了豐富的靜態字段,可用於構建詳細的設備指紋:

StringBuilder info = new StringBuilder();
info.append("Product: ").append(Build.PRODUCT).append("\n");
info.append("CPU_ABI: ").append(Build.CPU_ABI).append("\n");
info.append("BRAND: ").append(Build.BRAND).append("\n");
info.append("DEVICE: ").append(Build.DEVICE).append("\n");
info.append("MANUFACTURER: ").append(Build.MANUFACTURER).append("\n");
info.append("FINGERPRINT: ").append(Build.FINGERPRINT).append("\n");
info.append("ID: ").append(Build.ID).append("\n");
// 將資訊顯示在 TextView 或 Log 中
Log.d("FullDeviceInfo", info.toString());

總結

通過 TelephonyManager 和 Build 類,我們可以輕鬆獲取 Android 設備的關鍵標識資訊。開發時請注意權限管理及不同廠商 ROM 可能導致的返回值差異。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved