Android獲取手機(jī)設(shè)備信息并區(qū)分真機(jī)與模擬器

有些時(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();

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,716評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評(píng)論 19 139
  • 大學(xué)四年,柳妃大人用無(wú)數(shù)的金錢(qián)和時(shí)間(對(duì)我來(lái)說(shuō))在大二的時(shí)候終于找到了自己喜歡的和適合的風(fēng)格,也找到了這一風(fēng)格的店...
    杜柳飛閱讀 1,278評(píng)論 2 15
  • 【嘆紅樓】 卷里金陵夢(mèng)里涼,紅樓妙筆嘆紅妝。 曹公十載繁華夢(mèng),徒剩胭脂一抹香。 ——題記 之一【林黛玉】 靨痕凝怨...
    芳雨_ca91閱讀 1,240評(píng)論 12 13
  • 今天下班回家看到老公在煮檸檬茶,我問(wèn)怎么想起煮茶了?老公說(shuō)給女兒煮的,她一會(huì)回來(lái)喝。我奇怪:怎么你倆關(guān)系這么好...
    張茹_閱讀 219評(píng)論 0 0

友情鏈接更多精彩內(nèi)容