App获取android分辨率,Android 获取手机及APP信息实例详解

霜风渐紧寒侵被,听孤雁声嘹唳,一声声送一声悲。《御街行》中的这句诗用来形容这个季节的北京真是再合适不过了,霜风阵阵,跑步的时候也越来越舍不得脱去外套了,考验毅力的时刻到了!

言归正传,开发Android手机APP时,经常需要获取手机的相关信息,比如系统版本号、屏幕分辨率和MAC等。今天咱们就来聊一聊如何获取手机的相关信息。

首先我们可以新建一个类,需要有一个上下文的成员变量,至于其他的,不啰嗦,直接上代码!

获取屏幕分辨率:

//获取分辨率

String resolution = "";

DisplayMetrics dm = mContext.getResources().getDisplayMetrics();

int screenWidth = dm.widthPixels;

int screenHeight = dm.heightPixels;

resolution = screenWidth + "*" + screenHeight;

获取运营商:

//获取运营商

String providersName = "";

TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);

String IMSI = telephonyManager.getSubscriberId();

if (IMSI != null) {

if (IMSI.startsWith("46000") || IMSI.startsWith("46002") || IMSI.startsWith("46007")) {

providersName = "中国移动";

} else if (IMSI.startsWith("46001") || IMSI.startsWith("46006")) {

providersName = "中国联通";

} else if (IMSI.startsWith("46003")) {

providersName = "中国电信";

} else {

providersName = "其他";

}

} else {

providersName = "无法获取运营商信息";

}

获取联网方式:

/获取联网方式

String access = "";

ConnectivityManager connectionManager = (ConnectivityManager) mContext.getSystemService(CONNECTIVITY_SERVICE);

NetworkInfo netWorkInfo = connectionManager.getActiveNetworkInfo();

access = netWorkInfo.getTypeName();

获取操作系统版本:

/获取操作系统版本

String osVersion = "";

osVersion = android.os.Build.VERSION.RELEASE;

获取APP版本:

//获取APP版本

try {

PackageManager pm = mContext.getPackageManager();

PackageInfo pi = pm.getPackageInfo(mContext.getPackageName(), PackageManager.GET_ACTIVITIES);

if (pi != null) {

errorPram.setAppVersion(pi.versionName == null ? "" : pi.versionName);

}

} catch (NameNotFoundException e) {

}

获取设备ID:

//获取设备ID

String deviceId = "";

deviceId = telephonyManager.getDeviceId();

获取MAC:

//获取MAC

String macAddress = "";

WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);

WifiInfo info = (null == wifiManager ? null : wifiManager.getConnectionInfo());

if (null != info) {

macAddress = info.getMacAddress();

}

获取手机型号:

//获取手机型号

String model = "";

model = android.os.Build.MODEL;

获取IMEI:

//获取IMEI

String imei = "";

TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Activity.TELEPHONY_SERVICE);

if (tm != null) {

imei = tm.getDeviceId();

}

获取错误报告:

//获取错误报告

String report = "";

Writer writer = new StringWriter();

PrintWriter printWriter = new PrintWriter(writer);

ex.printStackTrace(printWriter);

Throwable cause = ex.getCause();

while (cause != null) {

cause.printStackTrace(printWriter);

cause = cause.getCause();

}

printWriter.close();

report = writer.toString();

需要注意的是,如果要获取错误报告,那么这个类需要继承Thread.UncaughtExceptionHandler接口,从而获取产生的异常的实例,也就是代码第四行当中的ex。

使用手机进行测试,可以得到相应信息如下:

10-27 16:50:31.404 31481-31481/com.radi.rescue E/66666: 分辨率:1080*1792

10-27 16:50:31.408 31481-31481/com.radi.rescue E/66666: 运营商:中国联通

10-27 16:50:31.410 31481-31481/com.radi.rescue E/66666: 联网方式:WIFI

10-27 16:50:31.410 31481-31481/com.radi.rescue E/66666: 操作系统版本:8.0.0

10-27 16:50:31.421 31481-31481/com.radi.rescue E/66666: app版本:2.6.5

10-27 16:50:31.421 31481-31481/com.radi.rescue E/66666: 设备ID:863127037355473

10-27 16:50:31.437 31481-31481/com.radi.rescue E/66666: MAC:b0:89:00:d7:36:e8

10-27 16:50:31.437 31481-31481/com.radi.rescue E/66666: 手机型号:FRD-AL10

10-27 16:50:31.438 31481-31481/com.radi.rescue E/66666: IMEI:863127037355473

10-27 16:50:31.445 31481-31481/com.radi.rescue E/66666: 错误报告:java.lang.RuntimeException: Unable to start activity ComponentInfozuodakuohaocom.radi.rescue/com.radi.rescue.info.AddSiteActivityyoudakuohao: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3194)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)

at android.app.ActivityThread.-wrap12(Unknown Source:0)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)

at android.os.Handler.dispatchMessage(Handler.java:108)

at android.os.Looper.loop(Looper.java:166)

at android.app.ActivityThread.main(ActivityThread.java:7425)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference

at com.radi.rescue.info.AddSiteActivity.onCreate(AddSiteActivity.java:87)

at android.app.Activity.performCreate(Activity.java:7372)

at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)

at android.app.ActivityThread.-wrap12(Unknown Source:0)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)

at android.os.Handler.dispatchMessage(Handler.java:108)

at android.os.Looper.loop(Looper.java:166)

at android.app.ActivityThread.main(ActivityThread.java:7425)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference

at com.radi.rescue.info.AddSiteActivity.onCreate(AddSiteActivity.java:87)

at android.app.Activity.performCreate(Activity.java:7372)

at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302)

at android.app.ActivityThread.-wrap12(Unknown Source:0)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891)

at android.os.Handler.dispatchMessage(Handler.java:108)

at android.os.Looper.loop(Looper.java:166)

at android.app.ActivityThread.main(ActivityThread.java:7425)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

这篇文章就分享这么多,欢迎大家补充和评论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值