精华内容
下载资源
问答
  • 2021-02-12 12:37:31

    content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">JS获取手机型号和系统

    //判断数组中是否包含某字符串

    Array.prototype.contains = function(needle) {

    for (i in this) {

    if (this[i].indexOf(needle) > 0)

    return i;

    }

    return -1;

    }

    var device_type = navigator.userAgent;//获取userAgent信息

    document.write(device_type);//打印到页面

    var md = new MobileDetect(device_type);//初始化mobile-detect

    var os = md.os();//获取系统

    var model = "";

    if (os == "iOS") {//ios系统的处理

    os = md.os() + md.version("iPhone");

    model = md.mobile();

    } else if (os == "AndroidOS") {//Android系统的处理

    os = md.os() + md.version("Android");

    var sss = device_type.split(";");

    var i = sss.contains("Build/");

    if (i > -1) {

    model = sss[i].substring(0, sss[i].indexOf("Build/"));

    }

    //判断是否是...

    if(model=""){

    alert('您的手机是')

    }

    }

    alert(model);//打印系统版本和手机型号

    更多相关内容
  • 主要介绍了获取安卓的手机或者平板的唯一标识的方法,需要的朋友可以参考下
  • content="width=device-width, initial-scale=1,maximum-...JS获取手机型号和系统//判断数组中是否包含某字符串Array.prototype.contains = function(needle) {for (i in this) {if (this[i].indexOf(needle) &g...

    content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">

    JS获取手机型号和系统

    //判断数组中是否包含某字符串

    Array.prototype.contains = function(needle) {

    for (i in this) {

    if (this[i].indexOf(needle) > 0)

    return i;

    }

    return -1;

    }

    var device_type = navigator.userAgent;//获取userAgent信息

    document.write(device_type);//打印到页面

    var md = new MobileDetect(device_type);//初始化mobile-detect

    var os = md.os();//获取系统

    var model = "";

    if (os == "iOS") {//ios系统的处理

    os = md.os() + md.version("iPhone");

    model = md.mobile();

    } else if (os == "AndroidOS") {//Android系统的处理

    os = md.os() + md.version("Android");

    var sss = device_type.split(";");

    var i = sss.contains("Build/");

    if (i > -1) {

    model = sss[i].substring(0, sss[i].indexOf("Build/"));

    }

    //判断是否是...

    if(model=""){

    alert('您的手机是')

    }

    }

    alert(model);//打印系统版本和手机型号

    展开全文
  • 因传统的移动终端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分,并存在被篡改和冒用的风险,所以在Android 10及后续版本中非厂商系统应用将无法获取IMEI、MAC等设备信息。无法获取...
  • 手机设备唯一标识相关概念

    千次阅读 2020-08-21 10:27:14
    手机设备唯一标识相关概念 IMEI 定义IMEI(International Mobile Equipment Identity)是国际移动设备识别码的缩写。俗称“手机串号”、“手机串码”、“手机序列号”,用于在GSM移动网络中识别每一部独立的手机,...

    手机设备唯一标识相关概念

    IMEI

    定义
    IMEI(International Mobile Equipment Identity)是国际移动设备识别码的缩写。俗称“手机串号”、“手机串码”、“手机序列号”,用于在GSM移动网络中识别每一部独立的手机,相当于手机的身份证号码。全球每部通过正规渠道销售的GSM手机均有唯一的IMEI码。
    IMEI码适用于GSM和WCDMA制式的移动电话和卫星电话,而CDMA手机采用MEID码,与IMEI码有所区别
    分配机构
    IMEI码由GSMA协会统一规划,并授权各地区组织进行分配,在中国由工业和信息化部电信终端测试技术协会(TAF)负责国内手机的入网认证,其他分配机构包括英国BABT、美国CTIA等。
    组成
    IMEI由15位数字组成,其组成为:

    • 前6位数(TAC,Type Approval Code)是"型号核准号码",一般代表机型。
    • 接着的2位数(FAC,Final Assembly Code)是"最后装配号",一般代表产地。
    • 之后的6位数(SNR)是"串号",一般代表生产顺序号。
    • 最后1位数(SP)通常是"0",为检验码,目前暂备用。

    查看方法
    手机拨号键盘输入*#06#即可查询

    MEID

    定义
    MEID 移动设备识别码(Mobile Equipment Identifier)是CDMA手机的身份识别码,也是每台CDMA手机或通讯平板唯一的识别码。
    通过这个识别码,网络端可以对该手机进行跟踪和监管。
    分配机构
    MEID号码是由Telecommunications Industry Association(TIA)进行分配管理的。
    MEID的申请,是需要付费的。价格是每1M范围的MEID的费用是8000美元,每增加1M范围的MEID号码需要额外付费8000美元。
    组成
    在这里插入图片描述

    如图所示,MEID由14个十六进制字符标识,第15位为校验位,不参与空中传输

    • RR:范围A0-FF,由官方分配
    • XXXXXX:范围 000000-FFFFFF,由官方分配
    • ZZZZZZ:范围 000000-FFFFFF,厂商分配给每台终端的流水号
    • C/CD:0-F,校验码

    这些字段被定义为10进制时,有以下格式

    • RR – 有效范围 ’99’, ’98’, ’97’ ,全球统一管理
    • XXXXXX – 有效范围 000000–999999。
    • ZZZZZZ – 有效范围 000000-- 999999。
    • C – 有效范围 0 – 9 – 不参与空中传输

    查看方法
    手机拨号键盘输入*#06#即可查询

    IMSI

    定义
    IMSI(International Mobile Subscriber Identity)国际移动用户识别码,是用于区分蜂窝网络中不同用户的、在所有蜂窝网络中不重复的识别码。在GSMUMTSLTE网络中,IMSI来自SIM卡,在CDMA2000网络中则是直接来自手机,或者RUIM。
    分配机构
    IMSI的格式由国际电信联盟(ITU)的E.212标准定义
    组成
    IMSI由一串十进制数字组成,最大长度为15位。实际使用的IMSI的长度绝大部分都是15位,短于15位的例子少见。
    示例:
    IMSI:310150123456789

    MCC310美国
    MNC150美国电话电报公司(AT&T Mobility)
    MSIN123456789

    IMSI:460001357924680

    MCC460中华人民共和国
    MNC00中国移动
    MSIN1357924680

    UUID

    定义
    UUID(Universally Unique Identifier)全局唯一标识符,定义为一个字符串主键,在时间和空间都完全惟一的系统信息。
    UUID是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡MAC地址)等数据计算生成的。UUID可以被任何人独立创建,并按需发布。,因为它们是不会被复制的独特标识符。属性协议允许设备使用UUID识别属性类型,从而不需要用读/写请求来识别它们的本地句柄
    分配机构
    UUID没有集中管理机构
    组成
    UUID是一个128比特的数值,为了提高效率,常用的UUID可缩短至16位。
    采用32位数字组成,编码采用16进制
    UUID的编码规则:

    • 1~8位采用系统时间,在系统时间上精确到毫秒级保证时间上的惟一性;
    • 9~16位采用底层的IP地址,在服务器集群中的惟一性;
    • 17~24位采用当前对象的HashCode值,在一个内部对象上的惟一性;
    • 25~32位采用调用方法的一个随机数,在一个对象内的毫秒级的惟一性。

    生成方法
    通常平台会提供生成的API

    GUID

    定义
    全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。
    GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2128(3.4×1038)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
    GUID一词有时也专指微软对UUID标准的实现。
    分配机构
    UUID没有集中管理机构
    组成
    GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
    生成方法
    通常平台会提供生成的API

    IDFA

    定义
    IDFA (IdentifierForIdentifier)是苹果 iOS 6 开始新增的广告标识符,在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的,可以简单理解为 iPhone 的设备临时身份证
    重置方式

    • 重置系统
    • 设置程序 -> 通用 -> 还原 -> 还原位置与隐私
    • 设置程序-> 通用 -> 关于本机 -> 广告 -> 还原广告标示符 -> 重启

    查看方法
    苹果公司提供获取的api接口:

    #import <AdSupport/AdSupport.h>
    [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    

    IDFV

    定义
    IDFV - Identifier For Vendor(应用开发商标识符)Vender是指应用提供商
    给Vender标识用户用的,每个设备上属同一个Vender的应用获取到的值相同。

    • 线上: IDFV 会根据App Store给的数据决定,卸载重装后也一致 (不同设备是不一样的)
    • 开发: 如果不是从App Store安装的,那么会根据bundle ID的前两个字端进行计算,所以 com.example.a 和 com.example.b 在开发阶段计算出来的IDFV 会是一样的.

    重置方式
    (未从App Store 下载时)当 bundle ID为 com.example.? 所有的app卸载之后会重置IDFV
    查看方法

    #import <AdSupport/ASIdentifierManager.h>
    [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]
    

    # UDID **定义**
    UDID (Unique Device Identifier)iOS设备的唯一识别码,它由40位16进制数的字母和数字组成
    **重置方式**
    每台iOS设备的UDID是唯一且永远不会改变(除了越狱,没什么办法可以改变它)
    **查看方法** ```objectivec [[UIDevice currentDevice] uniqueIdentifier]; ``` **iOS 5.0 开始废弃,采用改方法获取,审核会被拒.之所以废弃是因为通过UDID可以锁定一台设备,存在一定的风险** # OpenUDID **定义**
    开源组件,每台iOS设备的OpenUDID是通过第一个带有OpenUDID SDK包的App生成,如果你完全删除全部带有OpenUDID SDK包的App(比如恢复系统等),那么OpenUDID会重新生成,而且和之前的值会不同,相当于新设备。
    **优点**
    • 没有用到MAC地址。(注:MAC地址跟UDID一样,存在隐私问题。不能保证以后不会禁用MAC地址。)
    • 不同设备能够获取各自唯一的识别码,保证了唯一性,可以用于以往UDID的相关用途。
    • 当设备上安装第二个使用了OpenUDID方案的应用程序,将会从UIPasteboard中获取唯一识别码,这里取到的就是之前第一个应用保存到UIPasteboard中的。【前提:设备上有一个使用了OpenUDID的应用存在】

    缺点

    • 当将设备上所有使用了OpenUDID方案的应用程序删除,且设备关机重启,xcode彻底清除并重启,重装应用程序去获取OpenUDID,此时OpenUDID变化,与之前不一样。
    • 所有OpenUDID应用卸载后,由UIPasteboard保存的数据即被清除,重装会重新获取新的OpenUDID。
    展开全文
  • 电信设备-手机拍码信息比对查询防伪标识及其识别系统.zip
  • 我们一般在浏览器里识别用户的访问设备都是通过 User Agent 这个字段来获取的,但是通过它我们只能获取一个大概的信息,比如你用的是 Mac 还是 Windows,用的是 iPhone 还是 iPad。如果我想知道你用的是第几代 ...
  • 讲解当前环境下 获取安卓手机设备唯一标识的可行方案, 分析优劣势以及容易踩的坑. 前言 公司开发的游戏需要对用户设备进行标识,获得一个稳定可靠并且唯一的识别码,来作游客登录。并考虑后续玩家从游客换成账户登录...

    前言

    公司开发的游戏需要对用户设备进行标识,获得一个稳定可靠并且唯一的识别码,来作游客登录。并考虑后续玩家从游客换成账户登录数据要同步过来。

    虽然Android系统中提供了这样设备识别码,但是由于Android系统版本、厂商定制系统中的Bug等限制,稳定性和唯一性并不理想。而通过其他硬件信息标识也因为系统版本、手机硬件等限制存在不同程度的问题。

    下面汇总了一些能作为设备唯一标识的方案。

    方案

    方案大致分为三个方向,第一个方向就是安卓系统提供的一系列接口,获取具有唯一属性的码,比如imei,MAC,android_id等;第二个方向就是unity自带的API;第三个方向就是自定义计算ID。

    一.安卓系统原生

    如果不会unity与安卓交互可参考我的上一篇博客:Android与Unity交互及手机震动控制

    安卓系统获取串码
    参考资料: 获取Android设备唯一标识码
    参考资料: 获取Android设备的唯一标识符
    参考资料: Android设备唯一标识
    参考资料: Android 手机获取Mac地址的方法

    主要串码:

    IMEI:(国际移动设备识别码(IMEI:International Mobile Equipment Identification Number)是区别移动设备的标志,储存在移动设备中,可用于监控被窃或无效的移动设备。

    android系统中通常用下面这段代码获取:

    /**
     * 获取手机IMEI号
     * 
     * 需要动态权限: android.permission.READ_PHONE_STATE
     */
    public static String getIMEI(Context context) {
            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);
            String imei = telephonyManager.getDeviceId();
    
            return imei;
        }
    
    

    MEID:Mobile Equipment IDentifier(MEID)是全球唯一的56bit移动终端标识号。标识号会被烧入终端里,并且不能被修改。
    没有统一的获取方法!

    MAC ADDRESS:(Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address),MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。

    android系统中通常用下面这段代码获取:

    /**
         * 通过WiFiManager获取mac地址
         * @param context
         * @return
         */
        private static String tryGetWifiMac(Context context) {
            WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
            WifiInfo wi = wm.getConnectionInfo();
            if (wi == null || wi.getMacAddress() == null) {
                return null;
            }
            if ("02:00:00:00:00:00".equals(wi.getMacAddress().trim())) {
                return null;
            } else {
                return wi.getMacAddress().trim();
            }
        }
    

    ANDROID_ID:在设备首次启动时,系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,这个16进制的字符串就是ANDROID_ID,当设备被wipe后该值会被重置。

    android系统中通常用下面这段代码获取:

     String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.System.ANDROID_ID); 
    

    android.os.Build:根据手机硬件的型号返回串码,所以不同手机具有不同的串码,但是同型号的手机会重码。

    android系统中通常用下面这段代码获取:

    设备序列号(Serial Number, SN)
    String serialNum = android.os.Build.SERIAL;
    
    制造商 (Manufacturer)
    String manufacturer = android.os.Build.MANUFACTURER;
    
    型号(Model)
    String model = android.os.Build.MODEL;
    
    品牌(Brand)
    String brand = android.os.Build.BRAND;
    
    设备名 (Device)
    String device = android.os.Build.DEVICE;
    

    二.Unity自带API

    参考资料官方API文档
    使用Unity自带的API,SystemInfo.deviceUniqueIdentifier获取。

    string 设备唯一标识符= SystemInfo.deviceUniqueIdentifier;
    

    三.自定义计算ID

    这一套方案就是,服务器端采用流水号算法生成唯一码,然后下推给客户端,客户端将这个唯一码保存,最好设置为初始时自动截屏把唯一码保存在相册里。

    方案对比

    在这里插入图片描述

    踩坑与解决

    • 天坑1:在采用安卓系统原生的方案时,起初使用的是imei码,装上手机发现重号。后来发现这个码在安卓P之后压根不让你获取,会返回空值,所以重号。

    • 天坑2:后来加上设备硬件计算串码,刚开始还好,没什么问题,后来两台同型号的手机鬼使神差般的重号了,原因是当手机型号相同,通过手机硬件获取的串码就会一样,那么重号就不奇怪了。

    • 天坑3:在采用了 imei和硬件设备串码后,还得继续添加新的串码段,经研究android_id的串码是imei后最为合适的,然后就把android_id加上了,这下很欣喜发现不重号了,同型号手机也不同号,好了可以放心了。好景不长,原先打包的同学没在不能打包了,于是用自己的电脑打包,这下好,一安装,全体的ID都成新的了,之前升级了的数据都不在了。研究了好久,发现自Android 8.0(API级别26)起,ANDROID_ID取决于应用程序的签名密钥。这意味着“未签名”构建(默认情况下使用调试密钥库进行签名)的值将不同于已签名构建(使用播放器设置中提供的密钥进行签名)。所以也就有了换一台机器打包就有不同的串码值。

    • 解决:踩了这么多坑怎么解决呢?如上面所说,想要达到不同的机器打包出的串码都是一致的,需要做一个密钥,然后大家的电脑都使用这个密钥,然后结合 ANDROID_ID返回的串码使用。这样 获取手机设备唯一标识算告一段落了。但仍不是完美的方案。

    • 不完美 :为什么上述的不是完美的方案呢?因为各手机厂商不同ANDROID_ID的计算方式有所不同,会可能出现重号的现象,概率很小。除此之外由于Android系统版本、厂商定制系统中的Bug等限制,稳定性和唯一性并不理想。使用的体量一大,说不定也会出现重号和换号的情况。那有没有更好的方案,我想没有,但有可选方案,就是我上面说的自定义ID,这个方案的好处是,可以保证ID的唯一性,缺点就是玩家一旦卸载,再重新安装就会视为新用户,如果想找回账户,得查看手机里自动保存到相册的账号图片,经过一番找回操作才行。万一玩家将这张图片删除或清除了,那想要找回就只能是天方夜谭。

    总结

    获取设备唯一标识符没有完美的方案,做联网手游应当拒绝这个需求,直接引导玩家进行账号注册。
    当然在临时测试阶段使用安卓系统原生的方式,是一个不错的选择。

    文中的代码及工程下载:Android2Unity.zip

    展开全文
  • 由于现在隐私保护问题,不允许获取设备的IMEI和MAC地址,因此找出来这么一个方案,适用于做各种投票时获取设备标识信息,虽然不具有绝对的唯一性,但是应对普通的需求完全够了,本代码不需要引用任何文件,粘贴...
  • 手机设备身份识别码之IMEI

    千次阅读 2018-11-14 08:25:27
    手机设备身份识别码之IMEI
  • Android设备获取唯一标识码的方法,可以用
  • 如何确定Android设备唯一识别

    千次阅读 2021-11-20 10:05:35
    本文为转载文章,原文链接。...硬件标识实际上在硬件生产之时就被要求满足这两个特性(依然有人工生产的不确定性),但标识的获取趋于困难性,使得使用硬件标识作为唯一识别码的方案所能使用的范围越来越狭窄,不能作.
  • 最近在项目中遇到一个需求:app需要获取用户手机的唯一识别码然后上传到后台。在此我使用了react-native-device-info 插件,从名字可以看出这个插件的作用是获取设备的信息。使用react-native-device-info 安装简单...
  • web端如何判断手机设备的唯一性背景一个考勤的系统,不希望一台设备在相同时间段使用两个账号同时签到两次(代签),所以就需要判断是否为同一台手机设备解决过程1.首先想到使用navigator,发现信息过少,只能用来判断...
  • 网站访问设备识别

    千次阅读 2018-11-08 11:26:43
    在这节课开始之前,我们需要下下你了解一下 User-Agent(UA),它是 Http 协议中的一部分,客户端会通过这个请求头向访问网站提供浏览器类型、操作系统及版本、浏览器渲染引擎、浏览器语言等等信息的标识。...
  • 【实例简介】得到手机唯一识别码【实例截图】【核心代码】private String ChuanMa() {String szImei;// imei码String m_szDevIDShort;String m_szAndroidID;// 安卓idString m_szWLANMAC;// mac地址String m_szBTMAC...
  • android 手机设备唯一标识

    千次阅读 2014-12-04 11:17:58
    唯一标识码这东西在网络应用中非常有用,例如检测是否重复注册之类的。 [java] view plaincopy import android.provider.Settings.Secure;  private String android_id = Secure....
  • Android用户设备唯一标识老用户识别方案 方案 方案1:UUID + SharePreference(存取) APP首次使用时,创建UUID,并保存到SharePreference中。 以后再次使用时,直接从SharePreference取出来即可; 优点:数据唯一、不...
  • 今天在app服务端接口文档中看到2个接口名称,是和idfa相关的,就搜索了解了一下,顺便梳理了ios各种设备识别码。 *IDFA英文全称Identifier+for+Advertising,即广告标示符,目前是苹果生态内广告交易的主要标示符,...
  • 获取手机设备的相关信息,如IMEI、IMSI、型号、厂商等。通过plus.device获取设备信息管理对象。获取当前运行环境信息、与其它程序进行通讯等。通过plus.runtime可获取运行环境管理对象。直接上demobody{max-width: ...
  • html自动识别手机或者pc端作者:佚名来源:爱好者时间:2015-06-18**关于自动识别手机或者电脑设备的js代码,我也用过了很多。现在跟大家分享个简单,直接的代码,如下:**var system ={};var p = navigator....
  • 文章目录【Android取证篇】华为设备无法识别解决方案华为设备无法识别(一)正常打开方式1、开发者模式2、USB配置"仅充电"改为"MTP(多媒体传输)"3、手机跳出"允许USB调试"界面(二)无法识别尝试方案1、换数据线,...
  • Php获取移动设备唯一标识

    千次阅读 2021-02-08 22:46:46
    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ... } if(is_mobile_request()==true) { echo "手机的操作系统是:".$_SERVER['HTTP_USER_AGENT'];} else { #echo "电脑的操作系统是:".$_SERVER['HTTP_USER_AGENT']; }
  • 设备唯一标识/设备码/设备标识

    千次阅读 2021-04-26 22:27:38
    文章目录一、MAC地址二、IMEI三、MEIDMEID 和 IMEI 用途的区别四、序列号(一)苹果手机序列号 一、MAC地址 MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN ...
  • 获取Android设备唯一标识

    千次阅读 2021-06-10 11:55:10
    我们在项目过程中或多或少会使用到设备的唯一识别码,我们希望能够得到一个稳定、可靠的设备唯一识别码。今天我们将介绍几种方式。1. DEVICE_ID假设我们确实需要用到真实设备标识,可能就需要用到DEVICE_ID。在...
  • 转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50511283 文章出自:薛瑄的博客你也可以查看我...它根据不同的手机设备返回IMEI,MEID或者ESN码,但它在使用的过程中会遇到很多问题:1)非手机设...
  • 如何获取一个能唯一标识每台Android设备的序号? 这个问题有很多答案,但是他们中的大部分只在某些情况下有效。 根据测试: 所有的设备都可以返回一个TelephonyManager.getDeviceId() 所有的GSM设备 (测试设备都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,459
精华内容 11,383
关键字:

手机设备识别标识

友情链接: test29181129.rar