1. 程式人生 > >記錄幾種識別機器唯一碼的方式

記錄幾種識別機器唯一碼的方式

1.cpu串號

2.imei串號

3.mac地址

詳細如下

 // 1.獲取CPU串號 
public static String getCPUSerial() { 
String str = "", strCPU = "", cpuAddress = "0000000000000000"; 
try { 
// 讀取CPU資訊 
Process pp = Runtime.getRuntime().exec("cat /proc/cpuinfo"); 
InputStreamReader ir = new InputStreamReader(pp.getInputStream()); 
LineNumberReader input = new LineNumberReader(ir); 


// 查詢CPU序列號 
for (int i = 1; i < 100; i++) { 
str = input.readLine(); 
if (str != null) { 
// 查詢到序列號所在行 
if (str.indexOf("Serial") > -1) { 
// 提取序列號 
strCPU = str.substring(str.indexOf(":") + 1, str.length()); 
cpuAddress = strCPU.trim(); 
break; 



} catch (Exception ex) { 
// 賦予預設值 
ex.printStackTrace(); 

return cpuAddress; 

}

//2.獲取imei

public static String getImeiSerial(Context context){ 
try { 
if(null==imeiSerial && null!=context){ 
boolean mobileMark = false; 
ConfigManager configManager = (ConfigManager) context.getSystemService(Context.CONFIG_SERVICE); 
if(null!=configManager) mobileMark = configManager.getMobileSupportState(); 


if(mobileMark){ 
TelephonyManager mTelephonyManager = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)); 
if(null!=mTelephonyManager) imeiSerial = mTelephonyManager.getDeviceId(); 


} catch (Exception e) { 
e.printStackTrace(); 

return imeiSerial; 
}

//3.獲取mac地址

public static String getLocalMacAddressFromWifiInfo(Context context){
         WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);  
         WifiInfo info = wifi.getConnectionInfo();  
         return info.getMacAddress(); 
     }