Android获取手机系统信息

该博客详细介绍了如何在Android应用中获取设备的各种信息,包括IMEI、Android ID、SIM卡信息、运营商、网络状态、蓝牙、Wi-Fi、硬件配置、系统版本等,并展示了相关代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分别获取了以下内容

  • 列表内容
名称接口参数名称备注示例
序列号getDeviceId序列号IMEI865872025238821
andrlid_idgetStringandroid_idbcbc00f09479aa5b
手机号码getLine1Number手机号码13117511178
手机卡序列号getSimSerialNumber手机卡序列号89860179328595969501
IMSIgetSubscriberIdIMSI460017932859596
手机卡国家getSimCountryIso手机卡国家cn
运营商getSimOperator运营商46001
运营商名字getSimOperatorName运营商名字中国联通
国家iso代码getNetworkCountryIso国家iso代码cn
网络运营商类型getNetworkOperator返回MCC+MNC代码(SIM卡运营商国家代码和运营商网络代码)(IMSI) 46001
网络类型名getNetworkOperatorName返回移动网络运营商的名字(SPN)中国联通
网络类型getNetworkType 3
手机类型getPhoneType手机类型1
手机卡状态getSimState 1
mac地址getMacAddressmac地址a8:a6:68:a3:d9:ef
蓝牙名称getName HUAWEI TAG-TL00
返回系统版本getDeviceSoftwareVersion null
CPU型号cpuinfoCPU的型号MT6592
固件版本getRadioVersion无线电固件版本号,通常是不可用的MOLY.WR8.W1328.MD.TG.MP.V1.P22, 2014/07/15 19:57
Build系列android.os.Build  
系统版本RELEASE获取系统版本字符串。如4.1.2 或2.2 或2.3等4.4.4
系统版本值SDK系统的API级别 一般使用下面大的SDK_INT 来查看19
品牌BRAND获取设备品牌Huawei
型号MODEL获取手机的型号HUAWEI G750-T01
IDID设备版本号HUAWEITAG-TLOO
DISPLAYDISPLAY获取设备显示的版本包(在系统设置中显示为版本号)和ID一样TAG-TLOOCO1B166
产品名PRODUCT整个产品的名称G750-T01
制造商MANUFACTURER获取设备制造商HUAWEI
设备名DEVICE获取设备驱动名称hwG750-T01
硬件HARDWARE设备硬件名称,一般和基板名称一样(BOARD)mt6592
指纹FINGERPRINT设备的唯一标识。由设备的多个信息拼接合成Huawei/G750-T01/hwG750-T01:4.2.2/HuaweiG750-T01/C00B152:user/ota-rel-keys,release-keys
串口序列号SERIAL返回串口序列号YGKBBBB5C1711949
设备版本类型TYPE主要为user 或eng.user
描述build的标签TAGS设备标签。如release-keys 或测试的 test-keysrelease-keys
设备主机地址HOST设备主机地址scmbuild
设备用户名USER基本上都为android-buildqueen
固件开发版本代号codename设备当前的系统开发代号,一般使用REL代替REL
源码控制版本号build_incremental系统源代码控制值,一个数字或者git hash值C01B166
主板board获取设备基板名称TAG-TL00
主板引导程序bootloader获取设备引导程序版本号unkonwn
Build时间timeBuild时间1476084456000
系统的API级别SDK_INT数字表示19
cpu指令集1CPU_ABI获取设备指令集名称(CPU的类型)arm64-v8a
cpu指令集2CPU_ABI2  
WifiManagerWIFI相关  
蓝牙地址getAddress蓝牙地址MAC地址6a:cd:57:f2:3b:59
无线路由器名getSSIDWIFI名字210e03fcf0
无线路由器地址getBSSID ce:ea:8c:1a:5c:b2
内网ip(wifl可用)getIpAddress可以用代码转成192.168形式-2023511872
Display屏幕相关  
屏幕密度density屏幕密度(像素比例:0.75/1.0/1.5/2.0)2.0
屏幕密度densityDpi屏幕密度(每寸像素:120/160/240/320)480
手机内置分辨率getWidth内置好的不准确已废弃API720
手机内置分辨率getHeight 1184
x像素xdpi屏幕x方向每英寸像素点数422.03
Y像素ydpi屏幕y方向每英寸像素点数424.069
字体缩放比例scaledDensity 2.0

代码

   private TelephonyManager phone;
    private WifiManager wifi;
    private Display display;
    private DisplayMetrics metrics;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        phone = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        display = getWindowManager().getDefaultDisplay();

        metrics = getResources().getDisplayMetrics();

        init();
    }

    private void init() {
        DisplayMetrics book=new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(book);




        try {
            Class localClass = Class.forName("android.os.SystemProperties");
            Object localObject1 = localClass.newInstance();
            Object localObject2 = localClass.getMethod("get", new Class[] { String.class, String.class }).invoke(localObject1, new Object[] { "gsm.version.baseband", "no message" });
            Object localObject3 = localClass.getMethod("get", new Class[] { String.class, String.class }).invoke(localObject1, new Object[] { "ro.build.display.id",""});


            setEditText(R.id.get,localObject2+"");

            setEditText(R.id.osVersion,localObject3+"");
        } catch (Exception e) {
            e.printStackTrace();
        }



        //获取网络连接管理者
        ConnectivityManager connectionManager = (ConnectivityManager)
                getSystemService(CONNECTIVITY_SERVICE);
        //获取网络的状态信息,有下面三种方式
        NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo();

        setEditText(R.id.lianwang,networkInfo.getType()+"");
        setEditText(R.id.lianwangname,networkInfo.getTypeName());
        setEditText(R.id.imei, phone.getDeviceId());
        setEditText(R.id.deviceversion,phone.getDeviceSoftwareVersion());
        setEditText(R.id.imsi, phone.getSubscriberId());
        setEditText(R.id.number, phone.getLine1Number());
        setEditText(R.id.simserial, phone.getSimSerialNumber());
        setEditText(R.id.simoperator,phone.getSimOperator());
        setEditText(R.id.simoperatorname, phone.getSimOperatorName());
        setEditText(R.id.simcountryiso, phone.getSimCountryIso());
        setEditText(R.id.workType,phone.getNetworkType()+"");
        setEditText(R.id.netcountryiso,phone.getNetworkCountryIso());
        setEditText(R.id.netoperator,phone.getNetworkOperator());
        setEditText(R.id.netoperatorname,phone.getNetworkOperatorName());


        setEditText(R.id.radiovis,android.os.Build.getRadioVersion());
        setEditText(R.id.wifimac, wifi.getConnectionInfo().getMacAddress());
        setEditText(R.id.getssid,wifi.getConnectionInfo().getSSID());
        setEditText(R.id.getbssid,wifi.getConnectionInfo().getBSSID());
        setEditText(R.id.ip,wifi.getConnectionInfo().getIpAddress()+"");
        setEditText(R.id.bluemac, BluetoothAdapter.getDefaultAdapter()
                .getAddress());
        setEditText(R.id.bluname, BluetoothAdapter.getDefaultAdapter().getName()
        );

        setEditText(R.id.cpu,getCpuName());


        setEditText(R.id.andrlid_id,
                Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID));
        setEditText(R.id.serial,android.os.Build.SERIAL);
        setEditText(R.id.brand,android.os.Build.BRAND);
        setEditText(R.id.tags, android.os.Build.TAGS);
        setEditText(R.id.device,android.os.Build.DEVICE);
        setEditText(R.id.fingerprint,android.os.Build.FINGERPRINT);
        setEditText(R.id.bootloader, Build.BOOTLOADER);
        setEditText(R.id.release, Build.VERSION.RELEASE);
        setEditText(R.id.sdk,Build.VERSION.SDK);
         setEditText(R.id.sdk_INT,Build.VERSION.SDK_INT+"");
        setEditText(R.id.codename,Build.VERSION.CODENAME);
        setEditText(R.id.incremental,Build.VERSION.INCREMENTAL);
        setEditText(R.id.cpuabi, android.os.Build.CPU_ABI);
        setEditText(R.id.cpuabi2, android.os.Build.CPU_ABI2);
        setEditText(R.id.board, android.os.Build.BOARD);
        setEditText(R.id.model, android.os.Build.MODEL);
        setEditText(R.id.product, android.os.Build.PRODUCT);
        setEditText(R.id.type, android.os.Build.TYPE);
        setEditText(R.id.user, android.os.Build.USER);
        setEditText(R.id.disply, android.os.Build.DISPLAY);
        setEditText(R.id.hardware, android.os.Build.HARDWARE);
        setEditText(R.id.host, android.os.Build.HOST);
        setEditText(R.id.changshang, android.os.Build.MANUFACTURER);
        setEditText(R.id.phonetype,phone.getPhoneType()+"");
        setEditText(R.id.simstate,phone.getSimState()+"");
        setEditText(R.id.b_id, Build.ID);
        setEditText(R.id.gjtime,android.os.Build.TIME+"");
        setEditText(R.id.width,display.getWidth()+"");
        setEditText(R.id.height,display.getHeight()+"");
        setEditText(R.id.dpi,book.densityDpi+"");
        setEditText(R.id.density,book.density+"");
        setEditText(R.id.xdpi,book.xdpi+"");
        setEditText(R.id.ydpi,book.ydpi+"");
        setEditText(R.id.scaledDensity,book.scaledDensity+"");



        //setEditText(R.id.wl,getNetworkState(this)+"");
        // 方法2
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        int width=dm.widthPixels;
        int  height=dm.heightPixels;

        setEditText(R.id.xwidth,width+"");
        setEditText(R.id.xheight,height+"");

    }

    private void setEditText(int id, String s) {
        ((TextView) this.findViewById(id)).setText(s);
    }
    /**
     * 获取CPU型号
     * @return
     */
    public static String getCpuName(){

        String str1 = "/proc/cpuinfo";
        String str2 = "";

        try {
            FileReader fr = new FileReader(str1);
            BufferedReader localBufferedReader = new BufferedReader(fr);
            while ((str2=localBufferedReader.readLine()) != null) {
                if (str2.contains("Hardware")) {
                    return str2.split(":")[1];
                }
            }
            localBufferedReader.close();
        } catch (IOException e) {
        }
        return null;

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangan094

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值