展会信息港展会大全

得到电话状态(WIFI状态,厂商,运营商等)的工具类
来源:互联网   发布日期:2015-09-28 16:12:00   浏览:2818次  

导读:得到电话的状态,包括手机版本,厂商,运营商,型号,WIFI状态等等;无需多言,一看就懂的傻瓜贴。 需要在AndroidManifest.xml中注册如下权限 [html] uses-permission android:name=android.permission.READ_PHONE_STATE/ uses-permission android:name=andr...

得到电话的状态,包括手机版本,厂商,运营商,型号,WIFI状态等等;无需多言,一看就懂的傻瓜贴。

需要在AndroidManifest.xml中注册如下权限

[html]

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

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

[java]

package com.jamin.phone_info;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import android.Manifest;

import android.app.Activity;

import android.app.ActivityManager;

import android.app.ActivityManager.MemoryInfo;

import android.content.Context;

import android.content.pm.PackageManager;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.os.Build;

import android.telephony.TelephonyManager;

import android.util.Log;

public class PhoneInfo {

private static final String TAG = PhoneInfo.class.getSimpleName();

private static final String FILE_MEMORY = "/proc/meminfo";

private static final String FILE_CPU = "/proc/cpuinfo";

public String mIMEI;

public int mPhoneType;

public int mSysVersion;

public String mNetWorkCountryIso;

public String mNetWorkOperator;

public String mNetWorkOperatorName;

public int mNetWorkType;

public boolean mIsOnLine;

public String mConnectTypeName;

public long mFreeMem;

public long mTotalMem;

public String mCupInfo;

public String mProductName;

public String mModelName;

public String mManufacturerName;

/**

* private constructor

*/

private PhoneInfo() {

}

/**

* get imei

* @return

*/

public static String getIMEI(Context context) {

TelephonyManager manager = (TelephonyManager) context

.getSystemService(Activity.TELEPHONY_SERVICE);

// check if has the permission

if (PackageManager.PERMISSION_GRANTED == context.getPackageManager()

.checkPermission(Manifest.permission.READ_PHONE_STATE,

context.getPackageName())) {

return manager.getDeviceId();

} else {

return null;

}

}

/**

* get phone type,like :GSMCDMA叿IP仿伀一E

*

* @param context

* @return

*/

public static int getPhoneType(Context context) {

TelephonyManager manager = (TelephonyManager) context

.getSystemService(Activity.TELEPHONY_SERVICE);

return manager.getPhoneType();

}

/**

* get phone sys version

*

* @return

*/

public static int getSysVersion() {

return Build.VERSION.SDK_INT;

}

/**

* Returns the ISO country code equivalent of the current registered

* operator's MCC (Mobile Country Code).

*

* @param context

* @return

*/

public static String getNetWorkCountryIso(Context context) {

TelephonyManager manager = (TelephonyManager) context

.getSystemService(Activity.TELEPHONY_SERVICE);

return manager.getNetworkCountryIso();

}

/**

* Returns the numeric name (MCC+MNC) of current registered operator.may not

* work on CDMA phone

*

* @param context

* @return

*/

public static String getNetWorkOperator(Context context) {

TelephonyManager manager = (TelephonyManager) context

.getSystemService(Activity.TELEPHONY_SERVICE);

return manager.getNetworkOperator();

}

/**

* Returns the alphabetic name of current registered operator.may not work

* on CDMA phone

*

* @param context

* @return

*/

public static String getNetWorkOperatorName(Context context) {

TelephonyManager manager = (TelephonyManager) context

.getSystemService(Activity.TELEPHONY_SERVICE);

return manager.getNetworkOperatorName();

}

/**

* get type of current network

*

* @param context

* @return

*/

public static int getNetworkType(Context context) {

TelephonyManager manager = (TelephonyManager) context

.getSystemService(Activity.TELEPHONY_SERVICE);

return manager.getNetworkType();

}

/**

* is webservice aviliable

*

* @param context

* @return

*/

public static boolean isOnline(Context context) {

ConnectivityManager manager = (ConnectivityManager) context

.getSystemService(Activity.CONNECTIVITY_SERVICE);

NetworkInfo info = manager.getActiveNetworkInfo();

if (info != null && info.isConnected()) {

return true;

}

return false;

}

/**

* get current data connection type name ,like ,Mobile埿IFI俿FFLINE

*

* @param context

* @return

*/

public static String getConnectTypeName(Context context) {

if (!isOnline(context)) {

return "OFFLINE";

}

ConnectivityManager manager = (ConnectivityManager) context

.getSystemService(Activity.CONNECTIVITY_SERVICE);

NetworkInfo info = manager.getActiveNetworkInfo();

if (info != null) {

return info.getTypeName();

} else {

return "OFFLINE";

}

}

/**

* get free memory of phone, in M

*

* @param context

* @return

*/

public static long getFreeMem(Context context) {

ActivityManager manager = (ActivityManager) context

.getSystemService(Activity.ACTIVITY_SERVICE);

MemoryInfo info = new MemoryInfo();

manager.getMemoryInfo(info);

long free = info.availMem / 1024 / 1024;

return free;

}

/**

* get total memory of phone , in M

*

* @param context

* @return

*/

public static long getTotalMem(Context context) {

try {

FileReader fr = new FileReader(FILE_MEMORY);

BufferedReader br = new BufferedReader(fr);

String text = br.readLine();

String[] array = text.split("\\s+");

Log.w(TAG, text);

return Long.valueOf(array[1]) / 1024;

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return -1;

}

public static String getCpuInfo() {

try {

FileReader fr = new FileReader(FILE_CPU);

BufferedReader br = new BufferedReader(fr);

String text = br.readLine();

String[] array = text.split(":\\s+", 2);

for (int i = 0; i < array.length; i++) {

Log.w(TAG, " ....." + array[i]);

}

Log.w(TAG, text);

return array[1];

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

/**

* get product name of phone

*

* @return

*/

public static String getProductName() {

return Build.PRODUCT;

}

/**

* get model of phone

*

* @return

*/

public static String getModelName() {

return Build.MODEL;

}

/**

* get Manufacturer Name of phone

*

* @return

*/

public static String getManufacturerName() {

return Build.MANUFACTURER;

}

public static PhoneInfo getPhoneInfo(Context context) {

PhoneInfo result = new PhoneInfo();

result.mIMEI = getIMEI(context);

result.mPhoneType = getPhoneType(context);

result.mSysVersion = getSysVersion();

result.mNetWorkCountryIso = getNetWorkCountryIso(context);

result.mNetWorkOperator = getNetWorkOperator(context);

result.mNetWorkOperatorName = getNetWorkOperatorName(context);

result.mNetWorkType = getNetworkType(context);

result.mIsOnLine = isOnline(context);

result.mConnectTypeName = getConnectTypeName(context);

result.mFreeMem = getFreeMem(context);

result.mTotalMem = getTotalMem(context);

result.mCupInfo = getCpuInfo();

result.mProductName = getProductName();

result.mModelName = getModelName();

result.mManufacturerName = getManufacturerName();

return result;

}

@Override

public String toString() {

StringBuilder builder = new StringBuilder();

builder.append("IMEI : "+mIMEI+"\n");

builder.append("mPhoneType : "+mPhoneType+"\n");

builder.append("mSysVersion : "+mSysVersion+"\n");

builder.append("mNetWorkCountryIso : "+mNetWorkCountryIso+"\n");

builder.append("mNetWorkOperator : "+mNetWorkOperator+"\n");

builder.append("mNetWorkOperatorName : "+mNetWorkOperatorName+"\n");

builder.append("mNetWorkType : "+mNetWorkType+"\n");

builder.append("mIsOnLine : "+mIsOnLine+"\n");

builder.append("mConnectTypeName : "+mConnectTypeName+"\n");

builder.append("mFreeMem : "+mFreeMem+"M\n");

builder.append("mTotalMem : "+mTotalMem+"M\n");

builder.append("mCupInfo : "+mCupInfo+"\n");

builder.append("mProductName : "+mProductName+"\n");

builder.append("mModelName : "+mModelName+"\n");

builder.append("mManufacturerName : "+mManufacturerName+"\n");

return builder.toString();

}

}

作者 jamin0107

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港