美文网首页
不需要任何权限获得Android设备的唯一ID,非IMEI

不需要任何权限获得Android设备的唯一ID,非IMEI

作者: Pino | 来源:发表于2019-03-15 10:59 被阅读0次

    转载来自:https://blog.csdn.net/a360940265a/article/details/79907844
    IMEI
    只有Android手机才有, IMEI号是一串15位的号码,比如像这样 359881030314356
    TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);

    String szImei = TelephonyMgr.getDeviceId();
    需要权限<uses-permission android:name="android.permission.READ_PHONE_STATE" />

    通常用户会因为你向他们要了这个权限而给你一个差评,因为他们觉得你就是在窃取他们的隐私,很明显,你就是在收集一些数据

    
    //获得独一无二的Psuedo ID
    public static String getUniquePsuedoID() {  
        String serial = null;  
        String m_szDevIDShort = "35" +  Build.BOARD.length()%10+ Build.BRAND.length()%10 +                          
         Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +  
        Build.DISPLAY.length()%10 + Build.HOST.length()%10 +     
        Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +
        Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +
        Build.TAGS.length()%10 + Build.TYPE.length()%10 + 
        Build.USER.length()%10 ; //13 位    
     try {     
           serial = android.os.Build.class.getField("SERIAL").get(null).toString();   
        //API>=9 使用serial号
            return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();  
      } catch (Exception exception) { 
           //serial需要一个初始化        serial = "serial"; // 随便一个初始化 
       }   
     // 使用硬件信息拼凑出来的15位号码   
       return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
     // 最终会得到这样的一串ID:00000000-28ee-3eab-ffff-ffffe9374e72
    }
    

    相关文章

      网友评论

          本文标题:不需要任何权限获得Android设备的唯一ID,非IMEI

          本文链接:https://www.haomeiwen.com/subject/vvclmqtx.html