----------------------------------------------------------
package com.lilin.imei;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import android.app.Activity;
import android.app.ActivityManager;
import android.graphics.Color;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.os.SystemClock;
import android.telephony.TelephonyManager;
import android.widget.EditText;
import android.widget.TextView;
public class Main extends Activity {
TextView network_text;
EditText imei_et, imsi_et;
TextView rom_tv, romremimd_tv, mac_tv, sdcard_tv, cpu_tv, version_tv,
style_tv, number_tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle("设备信息");
setTitleColor(Color.YELLOW);
getView();
TelephonyManager tm = (TelephonyManager) this
.getSystemService(TELEPHONY_SERVICE);
// 区分手机网络
String operator = tm.getSimOperator();
if (operator != null) {
if (operator.equals("46000") || operator.equals("46002")
|| operator.equals("46007")) {
network_text.setText("中国移动");
} else if (operator.equals("46001")) {
network_text.setText("中国联通");
} else if (operator.equals("46003")) {
network_text.setText("中国电信");
}
}
imei_et.setText(tm.getDeviceId());// IMEI
imsi_et.setText(tm.getSubscriberId());// IMSI
String rom = formatSize(getRomMemroy()) + " / "
+ formatSize(getRomRemind());
rom_tv.setText(rom);// ROM
mac_tv.setText(getMacInfo());// MAC地址
String sdcard = formatSize(getSDCard()) + " / "
+ formatSize(getSDCardMemory());
sdcard_tv.setText(sdcard);// SDCard
String a[] = getCpuInfo();
cpu_tv.setText(a[1] + "MHz");// 处理器
String b[] = getVersion();
version_tv.setText(b[1]);// android版本
style_tv.setText(b[2]);// 手机型号
// NETWORK_TYPE_UNKNOWN 网络类型未知 0
// NETWORK_TYPE_GPRS GPRS网络 1
// NETWORK_TYPE_EDGE EDGE网络 2
// NETWORK_TYPE_UMTS UMTS网络 3
// NETWORK_TYPE_HSDPA HSDPA网络 8
// NETWORK_TYPE_HSUPA HSUPA网络 9
// NETWORK_TYPE_HSPA HSPA网络 10
// NETWORK_TYPE_CDMA CDMA网络,IS95A 或 IS95B. 4
// NETWORK_TYPE_EVDO_0 EVDO网络, revision 0. 5
// NETWORK_TYPE_EVDO_A EVDO网络, revision A. 6
// NETWORK_TYPE_1xRTT 1xRTT网络 7
// System.out.println("获取SIM卡提供的移动国家码和移动网络码=" + tm.getNetworkType());
// System.out.println("服务商名称=" + tm.getSimOperatorName());
// System.out.println("SIM卡的序列号=" + tm.getSimSerialNumber());
// System.out.println("手机号码=" + tm.getLine1Number());
// System.out.println("设备的软件版本号=" + tm.getDeviceSoftwareVersion());
//
// /*
// * 电话状态: 1.tm.CALL_STATE_IDLE=0 无活动 2.tm.CALL_STATE_RINGING=1 响铃
// * 3.tm.CALL_STATE_OFFHOOK=2 摘机
// */
// tm.getCallState();// int
//
// /*
// * 电话方位:
// */
// tm.getCellLocation();// CellLocation
// /*
// * 附近的电话的信息: 类型:List<NeighboringCellInfo>
// * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
// */
// tm.getNeighboringCellInfo();// List<NeighboringCellInfo>
//
// /*
// * 获取ISO标准的国家码,即国际长途区号。 注意:仅当用户已在网络注册后有效。 在CDMA网络中结果也许不可靠。
// */
// tm.getNetworkCountryIso();// String
//
// /*
// * MCC+MNC(mobile country code + mobile network code)
// 注意:仅当用户已在网络注册时有效。
// * 在CDMA网络中结果也许不可靠。
// */
// tm.getNetworkOperator();// String
//
// /*
// * 按照字母次序的current registered operator(当前已注册的用户)的名字 注意:仅当用户已在网络注册时有效。
// * 在CDMA网络中结果也许不可靠。
// */
// tm.getNetworkOperatorName();// String
//
// /*
// * 手机类型: 例如: PHONE_TYPE_NONE 无信号 PHONE_TYPE_GSM GSM信号 PHONE_TYPE_CDMA
// * CDMA信号
// */
// tm.getPhoneType();// int
//
// /*
// * Returns the ISO country code equivalent for the SIM provider's
// * country code. 获取ISO国家码,相当于提供SIM卡的国家码。
// */
// tm.getSimCountryIso();// String
//
// /*
// * SIM的状态信息: SIM_STATE_UNKNOWN 未知状态 0 SIM_STATE_ABSENT 没插卡 1
// * SIM_STATE_PIN_REQUIRED 锁定状态,需要用户的PIN码解锁 2 SIM_STATE_PUK_REQUIRED
// * 锁定状态,需要用户的PUK码解锁 3 SIM_STATE_NETWORK_LOCKED 锁定状态,需要网络的PIN码解锁 4
// * SIM_STATE_READY 就绪状态 5
// */
// tm.getSimState();// int
//
//
// /*
// * 取得和语音邮件相关的标签,即为识别符 需要权限:READ_PHONE_STATE
// */
// tm.getVoiceMailAlphaTag();// String
//
// /*
// * 获取语音邮件号码: 需要权限:READ_PHONE_STATE
// */
// tm.getVoiceMailNumber();// String
//
// /*
// * ICC卡是否存在
// */
// tm.hasIccCard();// boolean
//
// /*
// * 是否漫游: (在GSM用途下)
// */
// tm.isNetworkRoaming();//
}
public void getView() {
network_text = (TextView) findViewById(R.id.network_text);
imei_et = (EditText) findViewById(R.id.imei_et);
imsi_et = (EditText) findViewById(R.id.imsi_et);
rom_tv = (TextView) findViewById(R.id.rom_et);
mac_tv = (TextView) findViewById(R.id.mac_et);
sdcard_tv = (TextView) findViewById(R.id.sdcard_et);
cpu_tv = (TextView) findViewById(R.id.cpu_et);
version_tv = (TextView) findViewById(R.id.version_et);
style_tv = (TextView) findViewById(R.id.style_et);
number_tv = (TextView) findViewById(R.id.number_et);
}
// 获得ROM的总大小
public long getRomMemroy() {
long romInfo;
romInfo = getTotalInternalMemorySize();
return romInfo;
}
// 获得ROM的剩余大小
public long getRomRemind() {
long romInfo;
romInfo = getTotalInternalMemorySize();
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
romInfo = blockSize * availableBlocks;
return romInfo;
}
// 获得ROM的总大小
public long getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}
public String[] getVersion() {
String[] version = { "null", "null", "null", "null" };
String str1 = "/proc/version";
String str2;
String[] arrayOfString;
try {
FileReader localFileReader = new FileReader(str1);
BufferedReader localBufferedReader = new BufferedReader(
localFileReader, 8192);
str2 = localBufferedReader.readLine();
arrayOfString = str2.split("\\s+");
version[0] = arrayOfString[2];// KernelVersion
localBufferedReader.close();
} catch (IOException e) {
}
version[1] = Build.VERSION.RELEASE;// firmware version
version[2] = Build.MODEL;// model
version[3] = Build.DISPLAY;// system version
return version;
}
// 系统可用的内存大小
public long getRAMMemory() {
ActivityManager am = (ActivityManager) this
.getSystemService(ACTIVITY_SERVICE);
ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
am.getMemoryInfo(mi);
return mi.availMem;
}
// CPU信息
public String[] getCpuInfo() {
String str1 = "/proc/cpuinfo";
String str2 = "";
String[] cpuInfo = { "", "" };
String[] arrayOfString;
try {
FileReader fr = new FileReader(str1);
BufferedReader localBufferedReader = new BufferedReader(fr, 8192);
str2 = localBufferedReader.readLine();
arrayOfString = str2.split("\\s+");
for (int i = 2; i < arrayOfString.length; i++) {
cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";
}
str2 = localBufferedReader.readLine();
arrayOfString = str2.split("\\s+");
cpuInfo[1] += arrayOfString[2];
localBufferedReader.close();
} catch (IOException e) {
}
return cpuInfo;
}
// 开机时间
private String getTimes() {
long ut = SystemClock.elapsedRealtime() / 1000;
if (ut == 0) {
ut = 1;
}
int m = (int) ((ut / 60) % 60);
int h = (int) ((ut / 3600));
return h + "时" + m + "分";
}
// SDCard总大小
public long getSDCard() {
long sdCardInfo = 0;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
File sdcardDir = Environment.getExternalStorageDirectory();
StatFs sf = new StatFs(sdcardDir.getPath());
long bSize = sf.getBlockSize();
long bCount = sf.getBlockCount();
sdCardInfo = bSize * bCount;// 总大小
}
return sdCardInfo;
}
// SDCard可用大小
public long getSDCardMemory() {
long sdCardInfo = 0;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
File sdcardDir = Environment.getExternalStorageDirectory();
StatFs sf = new StatFs(sdcardDir.getPath());
long bSize = sf.getBlockSize();
long availBlocks = sf.getAvailableBlocks();
sdCardInfo = bSize * availBlocks;// 可用大小
}
return sdCardInfo;
}
// 获得MAC地址
public String getMacInfo() {
String mac;
WifiManager wifiManager = (WifiManager) this
.getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo.getMacAddress() != null) {
mac = wifiInfo.getMacAddress();
} else {
mac = "Fail";
}
return mac;
}
// 格式化
public String formatSize(long size) {
String suffix = null;
float fSize = 0;
if (size >= 1024) {
suffix = "KB";
fSize = size / 1024;
if (fSize >= 1024) {
suffix = "MB";
fSize /= 1024;
}
if (fSize >= 1024) {
suffix = "GB";
fSize /= 1024;
}
} else {
fSize = size;
}
java.text.DecimalFormat df = new java.text.DecimalFormat("#0.00");
StringBuilder resultBuffer = new StringBuilder(df.format(fSize));
if (suffix != null)
resultBuffer.append(suffix);
return resultBuffer.toString();
}
}
分享到:
相关推荐
usbhid 读取设备信息 测试过没有问题
使用windows自带的wmi快速读取设备信息
C#读取设备信息(源代码下载
可以获取ios设备的信息。比如uuid和mac地址
工程师为了监测产线稳定性,需提取出震动...HttpClientTest项目能读取接口数据。并能计算机最大幅度值。使用BigDecimal数据类型保证精度不丢失。PostData模拟监测生产线设备产生的数据,给HttpClientTest提供数据接口。
iOS-iBeacon开发,搜索周围的设备和读取设备信息
带OTG功能安卓设备读取USB外设信息 可以通过AS调试读出 , 过滤关键字 "Li_Debug" , 一次显示使用USB外设 格式举例 厂商/VendorId: 0x10C4 产品/ProductId: 0xEA60 设备/DeviceId: 0x7D2 接口数/InterfaceCount: 1 ...
嵌入式优质资源,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会...
java读取 xml文件 的源代码实现自己的Spring
Delphi PC端读取设备文件系统列表及设备信息
读取PCI插槽上的硬件配置信息 读取PCI插槽上的硬件配置信息
这个代码使用Windows管理设备(WMI)进行读取计算机硬件信息的一个代码,可以读取的硬件如下: '// 1、显示器资料(例如显示器序列号) '// 2、主板信息(例如主板序列号) '// 3、硬盘信息(例如硬盘序列号,品牌) ...
1、C#读取显卡硬件信息
能够读取到Usb设备连接电脑的端口序号。usb设备指Android平板、手机等类似安卓的设备。设备通过UsbHub连接到电脑上也需要能够读取。类似Windows设备管理中的“位置路径”。
电信设备-TDMA语音信息读取设备.zip
电信设备-手持型信息读取设备.zip
这个代码使用Windows管理设备(WMI)进行读取计算机硬件信息的一个代码,可以读取的硬件如下: '// 1、显示器资料(例如显示器序列号) '// 2、主板信息(例如主板序列号) '// 3、硬盘信息(例如硬盘序列号,品牌...
是一个适用于 windows 计算机的小型实用程序。它允许用户从小米、vivo 和华为智能手机读取...设备信息 引导加载程序状态 VIVO 快速启动信息 产品名称 设备型号 设备名称 设备信息 设备编号 OP, OPTR 引导加载程序状态
小米 vivo 华为机型读取识别小工具 特点: 从小米、vivo 和华为智能手机读取信息。...设备信息 引导加载程序状态 VIVO 快速启动信息 产品名称 设备型号 设备名称 设备信息 设备编号 OP, OPTR 引导加载程序状态
电信设备-输电设备信息读取方法及输电设备信息系统.zip