android获取设备全部信息
private static final String FILE_MEMORY = "/proc/meminfo";
private static final String FILE_CPU = "/proc/cpuinfo";
/**
* 得到IMEI
*
* @return
*/
public static final String getIMEI(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String imei = tm.getDeviceId();
if (imei == null || imei.equals("000000000000000")) {
return "0";
}
return imei;
} /**
* 得到序列号
*
* @param context
* @return
*/
public static final String getSeriNumber(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String sn = tm.getSimSerialNumber();
return sn;
} /**
* 得到IMSI
*
* @return
*/
public static final String getIMSI(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String imsi = tm.getSimSerialNumber();
if (imsi == null || imsi.equals("000000000000000")) {
return "0";
}
return imsi;
}
/**
* <p>
* 手机可用内存大小
* </p>
*
* @param context
* @return
* @author chenfei
* @date 2013-1-4
*/
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;
} /**
* <p>
* 手机整体内存大小
* </p>
*
* @param context
* @return
* @author chenfei
* @date 2013-1-4
*/
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+");
return Long.valueOf(array[1]) / 1024;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return -1;
} /**
* <p>
* 手机CPU型号
* </p>
*
* @return
* @author chenfei
* @date 2013-1-4
*/
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);
return array[1];
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
} /**
* <p>
* 手机型号 如 XT702
* </p>
*
* @return
* @author chenfei
* @date 2013-1-4
*/
public static String getModelName() {
return Build.MODEL;
} /**
* <p>
* 手机厂商名称
* </p>
*
* @return
* @author chenfei
* @date 2013-1-4
*/
public static String getManufacturerName() {
return Build.MANUFACTURER;
}
/**
* <p>
* 手机操作系统版本
* </p>
*
* @return
* @author chenfei
* @date 2013-1-4
*/
public static String getSoftSDKVersion() {
return Build.VERSION.RELEASE;// Firmware/OS 版本号
} /**
* 获取蓝牙mac地址
*
* @return
*/
public static String getBluetoothAddress() {
String address = BluetoothAdapter.getDefaultAdapter().getAddress();
return address == null ? "" : address;
} /**
* 获取上网方式
*
* @param mContext
* @return
*/
public static String getNetType(Context mContext) { String netType = "";
ConnectivityManager connectionManager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectionManager.getActiveNetworkInfo();
if (null != info && info.isAvailable()) {
netType = info.getTypeName();
}
return netType;
} /**
* 判断网络连接是否可用
*
* @param mContext
* @return
*/ public static boolean getNetIsVali(Context mContext) { if (mContext != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null) {
return mNetworkInfo.isAvailable();
}
}
return false;
} /**
* 获取运营商信息
*
* @param mContext
* @return
*/
public static String getNetExtraInfo(Context mContext) { String netExtraInfo = "";
TelephonyManager mTm = (TelephonyManager) mContext
.getSystemService(Context.TELEPHONY_SERVICE);
if (mTm.getSimState() == TelephonyManager.SIM_STATE_READY) {
netExtraInfo = mTm.getSimOperator();
if (null != netExtraInfo) {
if (netExtraInfo.equals("46000")
|| netExtraInfo.equals("46002")
|| netExtraInfo.equals("46007")) {
// 中国移动
netExtraInfo = "中国移动";
} else if (netExtraInfo.equals("46001")) { // 中国联通
netExtraInfo = "中国联通";
} else if (netExtraInfo.equals("46003")) { // 中国电信
netExtraInfo = "中国电信";
} else {
netExtraInfo = "其他";
}
}
}
return netExtraInfo;
} /**
* 得到wifi地址
*
* @param context
* @return
*/
public static String getWIFIMac(Context context) {
WifiManager wifi = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
String wifiMac = info.getMacAddress();
return wifiMac;
} /**
* 获取电话号码
*
* @param context
* @return
*/
public static String getPhoneNumber(Context context) {
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
return mTelephonyMgr.getLine1Number();
}
暂时先写这么多,部分机型获取获取不到一些属性比如电话号,蓝牙地址,序列号。使用时注意manifest中加入相应权限
android获取设备全部信息的更多相关文章
- [Android]获取设备相关信息
public static int screenWidth(Activity activity) { DisplayMetrics dm = new DisplayMetrics(); activit ...
- linux驱动之获取设备树信息
上一篇文章学习了字符设备的注册,操作过的小伙伴都知道上一篇文章中测试驱动时是通过手动创建设备节点的,现在开始学习怎么自动挂载设备节点和设备树信息的获取,这篇文章中的源码将会是我以后编写字符驱动的模板. ...
- Android 获取设备信息 异常
/**获取设备信息 * @param c * @return */ public static void setDeviceInfo(Context c,RequestParams params){ ...
- 关于Android的Build类——获取Android手机设备各种信息
经常遇到要获取Android手机设备的相关信息,来进行业务的开发,比如经常会遇到要获取CPU的类型来进行so库的动态的下载.而这些都是在Android的Build类里面.相关信息如下: private ...
- android获取设备唯一标示
概述 有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码.虽然Android系统中提供了这样设备识别码,但是由于Android系统版本.厂商定制系统中的Bug等限制,稳定性和唯一 ...
- 【转】 android获取设备唯一标识完美解决方案
<p style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; color: rgb(51, 51, 51); ...
- Android 获取设备唯一标识码
概述 有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码.虽然Android系统中提供了这样设备识别码,但是由于Android系统版本.厂商定制系统中的Bug等限制,稳定性和唯一 ...
- android 获取系统硬件信息
一,首先设置权限访问: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ...
- iOS开发-获取设备型号信息
开发中有的时候查看设计统计数据,或者通过日志查看错误信息,这个时候我们就需要获取获取设备信息,看下关于设备有几种方法: NSLog(@"%@",[[UIDevice current ...
随机推荐
- (转)Linq学习笔记
写在前面 最近在看Linq,在博客园看到这篇文章,写的通俗易懂,转来和大家一起做个分享.原文地址http://www.cnblogs.com/goscan/archive/2011/05/05/Lin ...
- 【wikioi】1250 Fibonacci数列(矩阵乘法)
http://wikioi.com/problem/1250/ 我就不说这题有多水了. 0 1 1 1 矩阵快速幂 #include <cstdio> #include <cstri ...
- JSON.stringify语法解析(自己留存)
语法: JSON.stringify(value [, replacer] [, space]) value:是必选字段.就是你输入的对象,比如数组,类等. replacer:这个是可选的.它又分为2 ...
- Java线程之CompletionService
转自:http://blog.csdn.net/andycpp/article/details/8902699 当使用ExecutorService启动了多个Callable后,每个Callable会 ...
- SQL 标量函数-----日期函数datediff()、 day() 、month()、year()
select day(createtime) from life_unite_product --取时间字段的天值 select month(createtime) from life_uni ...
- asp.net 微信企业号办公系统-流程设计--保存与发布
如果流程未设计完时可以先保存,以后再打开接着设计.点击工具栏上的保存按钮即可保存当前流程设计: 如果下次要接着设计,则可以打开该流程继续设计: 如果流程设计完成,可以点击安装按钮来发布流程,流程安装成 ...
- Web前端开发规范文档你需要知道的事--HTML、css、js、文档等需要规范内容
规范目的 为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,特制订此文档.本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发.本文档如有不对或者不 ...
- iOS开发之UITextField的使用详解
UITextField的使用详解 UITextField控件是开发中,使用频率比较高的控件了,那么有必要总结一下. 一.UITextField手动编写控件 UITextField *txtAccou ...
- Function Scope
JavaScript’s function scope means that all variables declared within a function are visi-ble through ...
- [转] - C++程序启动过程
先说编译.链接过程1.预编译展开宏2.为每一个.cxx源文件编译一个目标文件3.编译器合成这些目标文件成一个库文件,同时解析可以找到的符号引用4.连接器把目标的库文件和所需要的引用的静.动态链接库进行 ...