android 获取手机参数整理

目前我了解用到的内容有:TelephonyManager类、Build类、Secure类

1:创建一个activity在展示:

显示效果图:


xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".GetPhoneInfoActivity">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="imei:" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/et_imei"
            android:text="可以获取imei" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="imsi:" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/et_imsi"
            android:text="可以获取imsi" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="手机型号:" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/et_MODEL"
            android:text="手机型号" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="手机号码:" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/et_phoneNumber"
            android:text="手机号码" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="MAC地址:" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/et_Mac"
            android:text="MAC地址" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="手机宽高:" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/et_width_height"
            android:text="宽高" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ICCID:" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/et_ICCID"
            android:text="ICCID" />
    </LinearLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="手机全部信息"
            android:id="@+id/tv_PhoneInfo" />
    </ScrollView>
</LinearLayout>


java类
package com.palmv.getphoneinfo;

import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.widget.EditText;
import android.widget.TextView;

import java.util.Locale;

public class GetPhoneInfoActivity extends AppCompatActivity {
    private EditText et_imei,et_imsi,et_MODEL,et_phoneNumber,et_Mac;
    private EditText et_width_height,et_ICCID;
    private String TAG="get手机信息";

    private TextView tv_PhoneInfo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_get_phone_info);

        initView();
        getInfo();
    }

    private void initView() {
        et_imei= (EditText) findViewById(R.id.et_imei);
        et_imsi= (EditText) findViewById(R.id.et_imsi);
        et_MODEL = (EditText) findViewById(R.id.et_MODEL);
        et_phoneNumber = (EditText) findViewById(R.id.et_phoneNumber);
        et_Mac= (EditText) findViewById(R.id.et_Mac);
        et_width_height = (EditText) findViewById(R.id.et_width_height);
        et_ICCID = (EditText) findViewById(R.id.et_ICCID);

        tv_PhoneInfo = (TextView) findViewById(R.id.tv_PhoneInfo);

    }

    private void getInfo() {
        TelephonyManager mTm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        et_imei.setText(mTm.getDeviceId());
        et_imsi.setText(mTm.getSubscriberId());
        et_ICCID.setText(mTm.getSimSerialNumber()); //imsi,sim串号
        et_MODEL.setText(android.os.Build.MODEL);  // 手机型号
        et_phoneNumber.setText(mTm.getLine1Number()); // 手机号码,有的可得,有的不可得

        et_Mac.setText(getMacAddress()); // 获取MAC地址有问题
        et_width_height.setText(getWeithAndHeight());

        tv_PhoneInfo.setText(phoneInfo());

        System.out.println(phoneInfo());


    }

    /**
     * 获取手机屏幕高度--像素
     */
    private String getWeithAndHeight(){
        //这种方式在service中无法使用,
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        String width_height = "宽"+dm.widthPixels+"高"+ dm.heightPixels;

//        //在service中也能得到高和宽
//        WindowManager mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
//        width = mWindowManager.getDefaultDisplay().getWidth();
//        height = mWindowManager.getDefaultDisplay().getHeight();

        return width_height;

    }

    /**
     * 获取手机屏幕密度 0.75/1.0/1.5
     */
    private float getDensity(){
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        return  dm.density;
    }
    /**
     * 获取手机屏幕密度 0.75/1.0/1.5
     */
    private int  getDensityDpi(){
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        return  dm.densityDpi;
    }


    /**
     * 获取手机MAC地址
     * @return
     */
    private String getMacAddress(){

        //在wifi未开启状态下,仍然可以获取MAC地址,但是IP地址必须在已连接状态下否则为0
        String s_macAddress = "";
        WifiManager wifiMgr = (WifiManager)getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = (null == wifiMgr ? null : wifiMgr.getConnectionInfo());
        if (null != info) {
            s_macAddress = info.getMacAddress();
        }

        return s_macAddress;
    }

    private int getWifiState(Context context){
        WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
        if(wifiManager != null){

            int wifiState = wifiManager.getWifiState();
            return wifiState;

        }
        return wifiManager.WIFI_STATE_UNKNOWN;

    }



    /**
     * 察看WIFI的IP地址的方法
     * @return
     */
    private String getlocalip(){
        WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        int ipAddress = wifiInfo.getIpAddress();

        if(ipAddress==0)return null;
        return ((ipAddress & 0xff)+"."+(ipAddress>>8 & 0xff)+"."
                +(ipAddress>>16 & 0xff)+"."+(ipAddress>>24 & 0xff));
    }

    public String phoneInfo() {
        final TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

        String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);

        StringBuilder sb = new StringBuilder();
        sb.append("========TelephonyManager类============"+"\n");
        sb.append("imei== " + tm.getDeviceId() + "\n");
        sb.append("手机号码= " + tm.getLine1Number() + "\n");
        sb.append("网络国家iso= " + tm.getNetworkCountryIso() + "\n");
        sb.append("网络运营商=" + tm.getNetworkOperator() + "\n");
        sb.append("运营商名称=" + tm.getNetworkOperatorName() + "\n");
        sb.append("网络类型=" + tm.getNetworkType() + "\n");
        sb.append("手机类型=" + tm.getPhoneType() + "\n");
        sb.append("imsi=" + tm.getSubscriberId() + "\n");
        sb.append("数据状态=" + tm.getDataState() + "\n");




        sb.append("sim卡国家iso=" + tm.getSimCountryIso() + "\n");
        sb.append("sim卡运营商=" + tm.getSimOperator() + "\n");
        sb.append("sim卡运营商名称=" + tm.getSimOperatorName() + "\n");
        sb.append("sim卡状态=" + tm.getSimState() + "\n");
        sb.append("ICCID sim串号=" + tm.getSimSerialNumber() + "\n");

        sb.append("========Build类============"+"\n");

        sb.append("Build.BOARD:处理器 " + Build.BOARD+ "\n");
        sb.append("Build.MODEL:手机设备版本"+ Build.MODEL +"\n");
        sb.append("Build.MANUFACTURER: " + Build.MANUFACTURER+ "\n");
        sb.append("Build.PRODUCT:设备正式名称 " + Build.PRODUCT+ "\n");
        sb.append("Build.USER:用户名" + Build.USER+ "\n");

        sb.append("Build.ID: " + Build.ID+ "\n");
        sb.append("Build.DEVICE:硬件设备 " + Build.DEVICE+ "\n");
        sb.append("Build.DEVICE:手机平台版本 " + Build.DISPLAY+ "\n");
        sb.append("Build.SERIAL: " + Build.SERIAL+ "\n");
        sb.append("Build.BRAND:设备品牌 " + Build.BRAND+ "\n");
        sb.append("cpu版本 " + Build.CPU_ABI+ "\n");
        sb.append("cpu版本2 " + Build.CPU_ABI2+ "\n");


        sb.append("手机android SDK版本号: " + Build.VERSION.SDK_INT + "\n");
        sb.append("手机android版本号RELEASE: " + Build.VERSION.RELEASE + "\n");



        sb.append("========Secure类============"+"\n");
        sb.append("Secure.ANDROID_ID: " + android_id + "\n");

        sb.append("========Locale类============"+"\n");
        sb.append("手机语言: " + Locale.getDefault().getLanguage() + "\n");


        sb.append("========自定义函数============"+"\n");

        sb.append("MAC地址: " + getMacAddress() + "\n");
        sb.append("wifi IP地址: " + getlocalip() + "\n");
        sb.append("wifi 状态: " + getWifiState(this) + "\n");

        sb.append("手机的宽高: " + getWeithAndHeight() + "\n");

        sb.append("屏幕密度: " + getDensity() + "\n");
        sb.append("屏幕密度Dpi: " + getDensityDpi() + "\n");

        return sb.toString();
    }
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牵手生活

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

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

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

打赏作者

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

抵扣说明:

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

余额充值