有些時(shí)候我們不想App在模擬器上被別人使用,所以我們禁止在模擬器上使用App
判斷是否為真機(jī):
根據(jù)以下四圖,我們可以對(duì)真機(jī)與模擬器來(lái)做一個(gè)簡(jiǎn)單區(qū)分:
如果Serial碼為unkonwn或者android 則肯定是模擬器了.這里我只是做了官方模擬器與夜神模擬器的檢測(cè),其它模擬器暫時(shí)沒(méi)有做測(cè)試.
/**
* 功能描述:判斷當(dāng)前設(shè)備是否為模擬器
* 參數(shù):
*/
public static boolean isEmulator() {
//獲取手機(jī)的Serial碼
String serial = Build.SERIAL;
if (serial.equalsIgnoreCase("unknown") || serial.equalsIgnoreCase("android")) {
return true;
}
return false;
}
官方模擬器
官方模擬器
夜神模擬器
夜神模擬器
無(wú)卡LG5X真機(jī)
無(wú)卡真機(jī)
有卡LG5X真機(jī)
有卡真機(jī)
獲取手機(jī)設(shè)備的一些信息:
StringBuilder sb = new StringBuilder();
//獲取手機(jī)的Serial碼
String serial = Build.SERIAL;
sb.append("Serial碼:").append(serial).append("\n");
//獲取手機(jī)的android_id號(hào)
String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
sb.append("Android_id:").append(androidId).append("\n");
//獲取手機(jī)的Mac地址
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo();
String macAddress = info.getMacAddress();
sb.append("MAC Address:").append(macAddress).append("\n");
Context context = getWindow().getContext();
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
//獲取手機(jī)的設(shè)備Id
String deviceId = telephonyManager.getDeviceId();
sb.append("DeviceId:").append(deviceId).append("\n");
//獲取手機(jī)號(hào)
String phoneNumber = telephonyManager.getLine1Number();
sb.append("phoneNumber:").append(phoneNumber).append("\n");
//獲取手機(jī)的運(yùn)營(yíng)商
String ProvidersName = "N/A";
try {
String IMSI = telephonyManager.getSubscriberId();
// IMSI號(hào)前面3位460是國(guó)家,緊接著后面2位00 02是中國(guó)移動(dòng),01是中國(guó)聯(lián)通,03是中國(guó)電信。
System.out.println(IMSI);
if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
ProvidersName = "中國(guó)移動(dòng)";
} else if (IMSI.startsWith("46001")) {
ProvidersName = "中國(guó)聯(lián)通";
} else if (IMSI.startsWith("46003")) {
ProvidersName = "中國(guó)電信";
}
} catch (Exception e) {
e.printStackTrace();
}
sb.append("運(yùn)營(yíng)商:").append(ProvidersName).append("\n");
return sb.toString();