`
zhuqiang1002
  • 浏览: 11974 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

获取手机信息的工具类

 
阅读更多
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream.GetField;

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;

/**
 * retrieve phone info
 *
 * 
 */
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 :GSM��CDMA��SIP��NONE
         * 
         * @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��WIFI��OFFLINE
         * 
         * @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();
        }
        
}

1. 手机的IMEI
2.手机的制式类型,GSM OR CDMA 手机
3.手机网络国家编码
4.手机网络运营商ID。
5.手机网络运营商名称
6.手机的数据链接类型
7.是否有可用数据链接
8.当前的数据链接类型
9.手机剩余内存
10.手机总内存
11.手机CPU型号
12.手机名称
13.手机型号
14.手机设备制造商名称
注意:需要如下权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

分享到:
评论

相关推荐

    获得手机信息工具类

    手机的制式类型,GSM OR CDMA 手机 /2.1手机的系统版本信息 3.手机网络国家编码 4.手机网络运营商ID。 5.手机网络运营商名称 6.手机的数据链接类型 7.是否有可用数据链接 8.当前的数据链接类型 9.手机剩余...

    获取手机基础信息工具类

    该工具可获取当前手机系统版本号、获取手机型号、获取手机厂商、获取手机IMEI(需要“android.permission.READ_PHONE_STATE”权限)、判断网络的2G?3G?4G

    android 获取手机联系人的工具类 源码

    android 获取手机联系人的工具类 源码 包括 手机SIM卡联系人 手机通讯录联系人

    Android获取手机信息的工具类

    《Android获取手机信息的工具类详解》 在Android开发中,常常需要获取手机的各种信息,如设备ID、电话号码、网络状态等。为了方便开发者快速便捷地调用这些功能,通常会将相关代码封装成一个工具类。本文将详细介绍...

    获取Ip地址的Java工具类

    通过该工具类可以获得请求的IP地址,适用于后台管理系统的信息统计。

    android工具类 26个实用工具类

    9. **设备信息工具类**:`DeviceInfoUtil`可以获取设备的相关信息,如屏幕尺寸、系统版本、设备型号等。 10. **数据加密解密工具类**:如`EncryptUtil`,包含AES、DES等加密算法,保护敏感数据的安全。 11. **线程...

    获取android设备常用信息工具类

    获取android设备信息 /** * android android设备信息类 * * @author 0907 * */ public class AndroidDeviceInfo { private String sysDateTime;// 设备系统时间 private String deviceName;// 设备名称及...

    Android手机管理工具类详解

    在Android开发中,手机管理工具类通常包含一系列实用方法,用于获取设备的各种信息以及进行一些操作,如启动应用、发送短信等。`AppPhoneMgr`是一个典型的Android手机管理工具类,它提供了丰富的功能来帮助开发者...

    Android-一个获取Android设备唯一id的工具类

    本文将详细讲解如何使用一个名为"DeviceIDUtils"的工具类来获取Android设备的唯一ID。 首先,Android设备的唯一标识符并不总是那么简单直接。Android系统提供了多种方法来获取与设备相关的唯一标识,但每种方法都有...

    防止手机获取相片空指针的工具类

    为了解决这个问题,我们可以创建一个工具类,如`MiPictureHelper`,来辅助我们安全地获取相册中的照片。 `MiPictureHelper`类通常会包含以下几个关键知识点: 1. **权限检查**: 在Android 6.0及以上版本,用户...

    安卓开发框架工具类相关-安卓开发也会经常用到的28个java常用的工具类源码.zip

    8. **设备和系统信息工具类**: - 获取设备信息:如屏幕分辨率、设备型号等。 - 系统版本检测:适应不同版本的Android系统。 9. **权限管理工具类**: - 对于Android 6.0及以上版本,可能包含请求运行时权限的...

    Android-史上最全、最完整,获取设备信息、获取手机唯一标识

    在Android开发中,获取设备信息和手机唯一标识是常见的需求,尤其在进行用户风险控制时。这篇文章将深入探讨如何在Android系统中获取这些关键数据。 首先,了解Android设备信息包括但不限于以下几点: 1. **设备...

    android 开发常用工具类集合

    手机工具类添加获取运行内存 cpu型号 电池容量等方法 wifi工具类添加注册监听wifi状态和连接状态监听回调 2018.3.20 添加蓝牙连接状态监听,添加开关蓝牙接口 2018.3.29 wifi工具类添加密码错误监听 手机...

    SpringMVC可以用的工具类

    5. **HTTP请求工具类**:在处理HTTP请求时,`HttpRequestUtil`可以帮助获取请求参数、请求头、cookies等信息,还可以实现URL编码和解码。 6. **响应工具类**:`HttpResponseUtil`用于设置HTTP响应的状态码、头信息...

    手机网络工具类

    打开网络设置界面,获取活动网络信息,判断网络是否可用,判断网络是否是4G,判断wifi是否连接状态,获取移动网络运营商名称,获取当前的网络类型,获取当前的网络类型(WIFI,2G,3G,4G)

    获取安卓状态工具类

    总结,"安卓状态工具类"是为了方便地获取和管理设备的各种状态信息,包括识别码、网络连接、屏幕参数等,通过合理封装这些功能,可以让代码更加整洁,同时也便于在不同场景下使用这些信息。在实际开发中,务必遵循...

    自己收集整理的一些常用的工具类

    AppUtils APP相关信息工具类 AssetDatabaseOpenHelper 目录资源获取 Base64 加密 BitmapUtil 获取Bitmap和对Bitmap的操作 ChannelUtil 获取市场号 Colors 颜色工具类 包括常用的色值 DES DES加密解密类 ...

    C#公共工具类源码.rar

    2. **日期时间工具类**:处理日期和时间的函数,如获取当前时间、格式化日期、时间间隔计算等,这些都是日常开发中必不可少的。 3. **文件和目录操作类**:提供了创建、删除、复制、移动文件或目录的方法,以及读写...

    sms工具类调用阿里云短信服务

    在Java开发中,我们可以创建一个`sms工具类`来封装这些调用逻辑,从而简化业务代码,提高代码的可复用性和可维护性。本文将详细讲解如何构建这样的工具类,并分享相关的知识点。 1. **阿里云SDK引入** 在Java项目...

    连接WIFI工具类

    这个"连接WIFI工具类"(WifiAdmin)是为了简化这一过程而设计的。通过这个工具类,开发者可以轻松地实现查找、连接、断开Wi-Fi网络等一系列操作。以下是对这个工具类的主要知识点的详细解释: 1. **Wi-Fi状态获取**...

Global site tag (gtag.js) - Google Analytics