Android 휴대폰 및 APP 정보 얻기 실례 상세 설명
9986 단어 안드로이드 개발
본론으로 돌아가면 안드로이드 휴대전화 앱을 개발할 때 시스템 버전 번호, 화면 해상도와 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)
이 글은 이렇게 많이 공유했으니 여러분의 보충과 평론을 환영합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Android] 둥글게 펼쳐지는 Ripple을, 바삭하게 구현간이적으로 터치 피드백이 없는 버튼이나 레이아웃, 탭 범위가 좁아져 버린 버튼 등에, 범위 밖으로 둥글게 퍼지는 Ripple로 탭감, 영역을 조금 늘립니다. 이런 느낌 (화질 나쁘고 미안해..) Ripple을 내고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.