有些时候我们不想App在模拟器上被别人使用,所以我们禁止在模拟器上使用App

判断是否为真机:
根据以下四图,我们可以对真机与模拟器来做一个简单区分:
如果Serial码为unkonwn或者android 则肯定是模拟器了.这里我只是做了官方模拟器与夜神模拟器的检测,其它模拟器暂时没有做测试.

     /**     * 功能描述:判断当前设备是否为模拟器     * 参数:     */    public static boolean isEmulator() {        //获取手机的Serial码        String serial = Build.SERIAL;        if (serial.equalsIgnoreCase("unknown") || serial.equalsIgnoreCase("android")) {            return true;        }        return false;    }

官方模拟器

夜神模拟器

无卡LG5X真机

有卡LG5X真机

获取手机设备的一些信息:

        StringBuilder sb = new StringBuilder();        //获取手机的Serial码        String serial = Build.SERIAL;        sb.append("Serial码:").append(serial).append("\n");        //获取手机的android_id号        String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);        sb.append("Android_id:").append(androidId).append("\n");        //获取手机的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);        //获取手机的设备Id        String deviceId = telephonyManager.getDeviceId();        sb.append("DeviceId:").append(deviceId).append("\n");        //获取手机号        String phoneNumber = telephonyManager.getLine1Number();        sb.append("phoneNumber:").append(phoneNumber).append("\n");        //获取手机的运营商        String ProvidersName = "N/A";        try {            String IMSI = telephonyManager.getSubscriberId();            // IMSI号前面3460是国家,紧接着后面200 02是中国移动,01是中国联通,03是中国电信。            System.out.println(IMSI);            if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {                ProvidersName = "中国移动";            } else if (IMSI.startsWith("46001")) {                ProvidersName = "中国联通";            } else if (IMSI.startsWith("46003")) {                ProvidersName = "中国电信";            }        } catch (Exception e) {            e.printStackTrace();        }        sb.append("运营商:").append(ProvidersName).append("\n");        return sb.toString();

更多相关文章

  1. 懒得理 iPhone X 小米拟明年出三防手机!
  2. 保证Android手机安全的八条建议
  3. Android准备取代塞班 成为智能手机新霸主
  4. Android真机测试,Find Explorer无法打开data文件夹解决办法
  5. Android无处不在 你的隐私怎么办?
  6. Cyclone2d Android手机游戏引擎通用版本,永久免费使用+开源引擎
  7. Android中获取手机IMEI,IMSI, MAC(Android(安卓)6.0)工具类(标识用
  8. Android之查看Wifi密码
  9. adb常用命令系列(monkey)了解这些,基本上能够胜任工作中的一切环境!!

随机推荐

  1. 拼团小程序功能及商家怎样通过拼团盈利
  2. Laravel的安装和了解
  3. JavaScript onblur与onfocus事件详解
  4. Java之Algorithm_analysis案例详解
  5. Laravel 实现登录
  6. 最新phpstorm激活码,我直接贴码,你直接使用
  7. 2021年-全网最新phpstorm激活码,请低调点
  8. phpstorm2021版最新激活码,亲测有效!附上激
  9. 定义网站路由
  10. 两级普通list转树形结构