如何获取设备唯一识别码IMEI和Mac地址


下面这个工具类提供了一些方法,可以获取设备AndroidID、IMEI、序列号、以及由他们组成的唯一识别码、网卡的MAC地址、蓝牙MAC地址。代码如下:
 
DeviceInfoUtil:
 
package com.home;
 
import java.util.UUID;
 
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.provider.Settings.Secure;
import android.telephony.TelephonyManager;
 
public class DeviceInfoUtil {
 
/**
* 得到设备AndroidID,需要设备添加 Google账户
* @param context
* @return
*/
public static String getAndroidID(Context context) {
String androidID = Secure.getString(context.getContentResolver(),
Secure.ANDROID_ID);
return androidID;
}
 
/**
* 得到设备IMEI值
* @param context
* @return
*/
public static String getIMEI(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
return tm.getDeviceId();
}
 
/**
* 得到设备序列号
* @param context
* @return
*/
public static String getSimSerialNumber(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
return tm.getSimSerialNumber();
}
 
/**
* 得到设备唯一识别码
* @param context
* @return
*/
public static String getUniqueNumber(Context context) {
String androidID = getAndroidID(context);
String imei = getIMEI(context);
String simSerialNumber = getSimSerialNumber(context);
UUID uuid = new UUID(androidID.hashCode(),
((long) imei.hashCode() << 32) | simSerialNumber.hashCode());
return uuid.toString();
}
 
/**
* 获取设备本身网卡的MAC地址
* @param context
* @return
*/
public static String getWLANMACAddress(Context context) {
String macAddress = "";
WifiManager wm = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wm.getConnectionInfo();
if (info != null) {
macAddress = info.getMacAddress();
} else {
macAddress = "No Wifi Device";
}
return macAddress;
}
 
/**
* 获取蓝牙MAC地址
* @param context
* @return
*/
public static String getBluetoothMACAddress(Context context) {
String btMacAddress = "";
BluetoothAdapter ba = BluetoothAdapter.getDefaultAdapter();
if (ba != null) {
if (!ba.isEnabled()) {
btMacAddress = "Bluetooth not open";
// 启动蓝牙
Intent in = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
context.startActivity(in);
} else {
btMacAddress = ba.getAddress();
}
 
} else {
btMacAddress = "No Bluetooth Device";
}
return btMacAddress;
}
}
 
 权限:
 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>

作者:54小编
来源:54CMO

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.54cmo.com/feed/217.html