android获取设备唯一标识

在通讯app中常常要获取设备的唯一标识来进行一些操作,但是在android6.0后获取imei是需要动态获取权限的,如果用户拒绝了权限那就什么都获取不到了。所以找到了另一种的解决方案拼接Build类里的一些信息。
大多数的Build成员都是字符串形式的,我们只取他们的长度信息。我们取到13个数字,并在前面加上“35”。这样这个ID看起来就和15位IMEI一样了。

  /**获取设备唯一识别码*/
    public static String getPhoneSign(){
        String info="";
        String deviceInfo="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;
        try {
            info=android.os.Build.class.getField("SERIAL").get(null).toString();
            return new UUID(deviceInfo.hashCode(),info.hashCode()).toString();
        }catch (Exception e){
            info="info";
        }
        return info;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容