前几天看到过一个取巧的方法,通过调用手机GPU的信息来获得相信的型号信息;

来源:joyqi

https://segmentfault.com/a/11...

我们一般在浏览器里识别用户的访问设备都是通过 User Agent 这个字段来获取的,但是通过它我们只能获取一个大概的信息,比如你用的是 Mac 还是 Windows,用的是 iPhone 还是 iPad。如果我想知道你用的是第几代 iPhone,这个方法就不行了,前段时间我正好有这个需求,识别移动客户端的具体型号(主要是 iOS 设备),于是思考了下这个问题的实现。

首先,我跟大家一样想到了 UA,不过事实证明这路走不通。就在我无聊一个一个摆弄浏览器的 API 时,突然一篇文章里的某段代码提醒了了我。这篇文章讲的是怎样通过 js 获取图形设备信息的,因为 HTML5 支持了 canvas,所以可以通过 API 获取图形设备的型号,比如显卡的型号。

(function () {

var canvas = document.createElement('canvas'),

gl = canvas.getContext('experimental-webgl'),

debugInfo = gl.getExtension('WEBGL_debug_renderer_info');

console.log(gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL));

})();

运行这段代码就可以获取显卡的型号了,如果你在iOS的设备里运行,会获取到诸如 Apple A9 GPU 之类的信息。而我们知道每一代 iOS 设备的 GPU 型号都是不同的,比如 iPhone 6 是 A8,而 iPhone 6s 就是 A9。看到这里,你应该大概知道我的思路了,就是通过识别 GPU 的型号来辨别设备的型号。

不过这还有个小瑕疵,有些设备是同一代,也就是 GPU 型号完全相同,比如 iPhone 6s, iPhone 6s Plus, iPhone SE。它们用的都是 Apple A9 GPU,怎么区分开它们呢?你会发现它们最大的不同不就是分辨率不同吗?而通过 JavaScript 我们又可以方便地获取屏幕分辨率,这样把两个手段综合应用一下就可以获取设备的准确型号了。

这里有个示例网址,大家可以用手机访问

我的代码都放在了 GitHub 上

这次思考给了我一些解决问题的启发,我们在思考解决方案的时候从侧面入手说不定会有新的发现。就比如我们的这个代码,目前还无法识别同一代的 iPad Air 和 iPad mini,因为它们的 GPU 和分辨率均相同,但是延续这个思路其实是有很多解决方案的,比如大家可以研究下这两个设备的话筒和喇叭个数,而这个数量也是可以通过 JS 获取的

js android手机型号,JS怎么判断出安卓手机的具体型号 牌子相关推荐

  1. android 如何识别华为手机号码,JS怎么判断出安卓手机的具体型号 牌子

    前几天看到过一个取巧的方法,通过调用手机GPU的信息来获得相信的型号信息: 来源:joyqi https://segmentfault.com/a/11... 我们一般在浏览器里识别用户的访问设备都是 ...

  2. android实现忘记密码功能,手机忘记密码如可解决 安卓手机重置密码教程【详解】...

    许多安卓手机用户都会为自己的手机设置一个密码,方便保护自己的手机隐私,但是密码变化多次之后,自己有时候也会忘记密码,尤其是图形密码,更是容易记混了.那么,安卓手机忘记密码该怎么办呢?一起来看看今天小编 ...

  3. android照片不小心删除,如何恢复安卓手机误删除的照片

    位置:数据恢复的知识与技巧 - 如何恢复安卓手机误删除的照片 如何恢复安卓手机误删除的照片 如何恢复安卓手机误删除的照片?本文手把手地教您使用易数手机数据恢复软件,一步一步地找回安卓手机中丢失的照片! ...

  4. android手机更改手机密码,手机忘记密码如可解决 安卓手机重置密码教程【详解】...

    许多安卓手机用户都会为自己的手机设置一个密码,方便保护自己的手机隐私,但是密码变化多次之后,自己有时候也会忘记密码,尤其是图形密码,更是容易记混了.那么,安卓手机忘记密码该怎么办呢?一起来看看今天小编 ...

  5. android手机怎样开启usb调试模式,Android手机USB调试在哪?安卓手机如何打开USB调试模式?...

    Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件.下载应用或ROOT等,都需要打开手机的USB调试模式.安卓系统的版本有很多,它们的打开 ...

  6. android 代码打开usb调试,Android手机USB调试在哪?安卓手机如何打开USB调试模式?...

    Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件.下载应用或ROOT等,都需要打开手机的USB调试模式.安卓系统的版本有很多,它们的打开 ...

  7. android 接电话 返回后黑屏,安卓手机打电话黑屏怎么办?解决安卓接电话黑屏

    现在的手机市场几乎被iphone和安卓手机占领着,相信你或者你的周围绝大部分朋友都有安卓手机,到那时是手机多少都会出点问题,小编自己就遇到过,使用安卓手机打电话时竟然黑屏.如果说偶尔遇到一两次,那也就 ...

  8. 笔记本连接android手机,安卓手机连接电脑,详细教您安卓手机怎样连接电脑

    有很多时候我们都需要将手机与电脑进行连接,将手机的资料或者是电脑上的资料拷入另外一边,可以通过usb或者是数据线将两者连接来达到这一目的,usb是以前算是古老的办法了,现在科技非常发达,只需要将电脑和 ...

  9. android手机备份恢复出厂设置密码,手机恢复出厂设置 如何让安卓手机恢复出厂设置经验分享...

    最近接连有不少身边的朋友遇到一些比较奇怪的智能手机问题,比如最开始有朋友无意间设置了图案锁屏保护密码,但之后却不记得自设置的图案密码,导致连续五次解锁失败,手机直接成为了锁定状态,需要注册的谷歌账号密 ...

最新文章

  1. (一)SOA学习-相关缩写
  2. Robolectric测试框架使用文档
  3. MySQL实现分页查询
  4. 【Nexus3】使用-Nexus3批量上传jar包 artifact upload
  5. DataParallel work on cpu
  6. Linux下的 API Hook
  7. 【Android 】【Monkey Demons】 针对性的进行稳定性测试
  8. Java通过JNI/JNA加载dll库文件调用C接口,出现“java.lang.UnsatisfiedLinkError:包名.类.方法(参数)”问题
  9. 软件需求规格说明书模板
  10. 信息系统项目管理---第九章 项目人力资源管理
  11. 【无线网络技术专题(十一)】无线网络常用软件与工具大全
  12. 谷歌浏览器屏蔽自动更新浏览器提示版本太旧
  13. java导出excel弹出下载框_[Java教程]Springmvc和poi3.9导出excel并弹出下载框
  14. 家居3d网上展示_三维模型可视化展示
  15. 计算机小学期实践报告,小学期计算机实践报告
  16. 雷电9模拟器安装抓包工具whistle证书
  17. Windows 2000进程细述.
  18. EXCEL多列内容合并且中间加字符串
  19. NVIDIA GPU虚拟化七版迭代,如今再秀一波!
  20. 糟糕!服务器被植入挖矿木马,CPU飙升200%

热门文章

  1. Java写一个等腰三角形(数字符号都可)
  2. windows ssh传文件linux,利用SSH secure Shell实现windows与linux之间传输文件
  3. ArgoCD(四)--Application管理
  4. 基于halo快速搭建一个属于你自己的博客网站
  5. 阿里巴巴菜鸟iot技术部实习生招聘
  6. docker-compose部署6.8.23版本elasticsearch+es-head+kibana多节点集群及部分排错处理
  7. Hololens官方第三视角技术
  8. eclipse git push 冲突问题解决
  9. coverity代码检测工具介绍_Coverity代码扫描工具
  10. git上传代码到gitee仓库步骤