首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发获取手机Mac地址适配所有Android版本

最近由于项目需要MAC地址记录,搞了一个通用适配类,目前经过测试可以适配Android所有版本,我测试过设备系统Android 4 5 6 7 7+都可以获取到,废话不多说直接上代码,简洁: 该类分为三类...android sdk后来做了6.0适配,通过cat /sys/class/net/wlan0/address,可以6.0上获取mac地址。...7.0及以上 android 7.0 后,通过上述适配方法,将获取不到mac地址。...经过调研和测试,7.0上仍有办法回去mac地址: 总共分为三种方式: 通过ip地址获取绑定mac地址 扫描各个网络接口获取mac地址 通过busybox获取本地存储mac地址 代码如下: /**...e.printStackTrace(); } return result; } 本文主要讲解了Android获取手机Mac地址实例源码

4.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题

用到了需要获取手机wifi Mac地址。...} } return macString; } ▲ 产生问题 : 使用这个方法,模拟器上是可以正常获取wifi mac地址,但是Android 6.0系统上,获取就有问题...,返回是“02:00:00:00:00:00” ▲ 问题分析 : 原来谷歌官方为了给用户更多数据保护,从这个6.0版本开始, Android 移除了通过 WiFi 和蓝牙 API 来应用程序可编程访问本地硬件标示符...我们可以使用如下代码去获取手机wifi Mac地址,同样可以解决6.0以上版本问题。值得注意是模拟器使用如下代码去获取获取不到!...:name="android.permission.ACCESS_NETWORK_STATE"/ 总结 以上所述是小编给大家介绍Android 6.0获取wifi Mac地址为02:00:00:00

2.5K10

Android手机获取Mac地址几种方法

最常用方法,通过WiFiManager获取: /** * 通过WiFiManager获取mac地址 * @param context * @return */ private static...).trim())) { return null; } else { return wi.getMacAddress().trim(); } } 这个方法Android 7.0是获取不到...,返回null,其实是返回“02:00:00:00:00:00” 根据本地IP获取: /** * 根据IP地址获取MAC地址 * @return */ private static String...; } 注意网络接口Name有跟多:dummy0、p2p0、wlan0….其中wlan0就是我们需要WiFi mac地址。...这个方法Android 7.0及其以下版本都可以获取到。 总结 以上就是这篇文章全部内容了,希望本文内容对大家学习或者工作具有一定参考学习价值,谢谢大家对ZaLou.Cn支持。

14.2K20

Android 如何获取有效DeviceId

不要使用 MAC 地址 MAC 地址具有全局唯一性,无法由用户重置,恢复出厂设置后也不会变化。因此,一般不建议使用 MAC 地址进行任何形式用户标识。... Android 6.0(API 级别 23)到 Android 9(API 级别 28),无法通过第三方 API 使用 Wi-Fi 和蓝牙等本地设备 Mac 地址。...此外, Android 6.0 到 Android 9 版本,您还必须拥有下列权限,才能访问通过蓝牙和 Wi-Fi 扫描获得附近外部设备 MAC 地址: 方法/属性 所需权限 WifiManager.getScanResults...当然还有其他bug,比如有些厂家获取null之类。 所以,ANDROID_ID是可以考虑选择之一,后面细说。...这样可以做一个版本判断,低于10.0(或8.0)获取DeviceId,否则获取ANDROID_ID Mac地址 如果上面两步获取还是null,那么可以使用mac地址,但是mac由于6.0之后无法通过WifiInfo.getMacAddress

6.4K30

Android11 WiFi连接流程梳理

梳理一下Android11wifi连接流程。 一、可以看到点击连接以后,如果config不为null,则先保存网络,再进行连接,所以即使连接失败,此网络依然已保存网络列表里。...具体实现还是service,wifimanager只是一个桥梁、 frameworks/base/wifi/java/android/net/wifi/WifiManager.java public...= null) listenerProxy.onFailure(NOT_AUTHORIZED); } } 三、wifiservice会判断uid权限,然后这里会判断staid,因为android11...上层是支持了双wifi,就是连接俩个AP,当然具体功能还要厂商自己实现,双AP具体可以看Android11 wifi开启流程,这里开启wifi时就会分配staid。...在这里会更新AP信息,然后计分器打分,从底层获取macaddress,然后开启IPClient。

3.3K10

android如何获取view布局高度与宽度详解

前言 可能很多情况下,我们都会有activity获取view 尺寸大小(宽度和高度)需求。面对这种情况,很多同学立马反应:这么简单问题,还用你说?你是不是傻。。...当我们 onCreate() 方法获取某个 View 组件宽度和高度,直接调用 getWidth()、getHeight()、getMeasuredWidth()、getMeasuredHeight...OnPreDrawListener 监听事件 视图将要绘制时调用该监听事件,会被调用多次,因此获取到视图宽度和高度后要移除该监听事件。...view.getHeight(); // 获取高度 } 六、使用 View.OnLayoutChangeListener 监听事件(API = 11视图 layout 改变时调用该事件...UI 事件队列会按顺序处理事件, setContentView() 被调用后,事件队列中会包含一个要求重新 layout message,所以任何 post 到队列 Runnable 对象都会在

5.7K10

android获取Mac地址和IP地址

最近项目突然加了个需求,上传用户ip和mac,话不多说,直接上代码 获取Mac地址实际项目中测试了如下几种方法: (1)设备开通Wifi连接,获取到网卡MAC地址(但是不开通wifi,这种方法获取不到...; } 但是经过测试该方法android2.3, 2.2...较老版本有效,但是android较新版本(例如4.0等)获取数据不正确。...解决方法是,在上面代码最内层for循环if语句中对inetAddress进行格式判断,只有其是IPV4格式地址时,才返回值。...; } 网络上还有一种方法来获取本地IP地址(不过是wifi状态下) 通过WifiManager, DhcpInfo获取IP地址以及网关等信息(android4.0等版本也适用)...不过我自己在做项目过程,用另外一种方法也解决了android4.0获取IP错误问题: //获取本地IP public static String getLocalIpAddress()

8.8K20

Web 获取 MAC 地址

解决思路   这样问题,能想到解决思路只有两个:(当时思路,其实思路远不止这些)   1、 EXE 文件嵌入一个浏览器控件,浏览器控件显示 ERP 页面,EXE 获取 MAC 地址后提交到服务器...2、写一个 OCX,让页面 JS 与 OCX 进行交互,OCX 获取MAC 地址后,将 MAC 返回给 JS,JS 通过 DOM 操作写入到对应表单,然后和用户名、密码一起提交给服务器。...OCX 获取 MAC 地址关键代码   OCX 可以直接调用 Windows 操作系统 API 函数,写起来也比较简单,代码如下: BSTR CGetMacCtrl::GetMacAddress... Web 中进行测试    Web 测试也比较简单,通过 clsid 引入 OCX 文件,然后 JS 调用 OCX 文件函数,函数返回 MAC 地址给 JS,JS 进行 DOM 操作,代码如下...GetMacAddress() 获取 MAC 地址

14.7K50

Android获得设备状态信息、Mac地址、IP地址方法

前言 APP开发时,经常会遇到要获取手机状态信息场景,像升级时获取版本号,像发生异常时要收集手机信息等等。有些软件还要根据Mac地址来判定当前用户以前是否登录过。...下面将一一介绍获取这些手机状态信息方法。 1 通过build获取手机硬件信息 运用反射获取Build信息,然后从build得到对应字段值。这种情况适用于获取所有的build信息。...地址 我们知道mac地址是网卡唯一标识,通过这个可以判断网络当前连接手机设备有几台。...代码如下: public static String getMacAddress(){ /*获取mac地址有一点需要注意就是android 6.0版本后,以下注释方法不再适用,不管任何手机都会返回..."02:00:00:00:00:00"这个默认mac地址,这是googel官方为了加强权限管理而禁用了getSYstemService(Context.WIFI_SERVICE)方法来获得mac地址

3.7K30

android 单点登录功能

android 获取机器唯一标示 deviceid //deviceId public static String getDeviceId(Context context) {...mac地址mac地址很好理解,就是用户上网上网许可证,这个买手机时候,你翻开电池就知道里面有一个标签!.../** * 获取MAC地址,注意:手机重启,mac地址null; * * @param context * @return mac地址; */ public static String...} } 2.获取token app进入app时要先获取token,获取token时候我们要给服务端传递当前设备设备号,当我们换了设备后设备号变了,返回token值也就变了,那么原设备token...3.请求交互携带token 每次客户端和服务端有任何交互时候都要传递这个token参数,当我们另一台设备登录时候原设备上存token就失效了,因为数据库里面当前用户token已经新设备获取toekn

53520

Android8.0、9.0、10.0、11.0新特性兼容适配代码修改

Android Studio开发实战 从零基础到App上线(第2版)》书后面的附录给出了Android8和Android9主要特性说明,附录表格如下图所示: 不过附录表格只涵盖了常见功能代码适配...Android11 1、打包APK时必须勾选V2 依次选择菜单Build→Generate Signed Bundle/APK,导出APK安装包时候,V2复选框也要勾选,该选项可避免Janus漏洞...2、Android11新增了查询所有应用权限QUERY_ALL_PACKAGES 通常调用PackageMangergetInstalledApplications方法可以获取已安装应用列表,获取代码示例如下...3、Android11默认WebView不能访问存储卡上网页 build.gradle采用Android11编译时(targetSdkVersion 30),WebView无法访问存储卡网页文件...Android10及以下版本,该值默认为true,但从Android11开始该值默认为false。 设置代码示例如下: // 设置是否允许访问文件,如WebView访问存储卡文件。

98620

Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)

Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名.......获取设备id 获取ip地址 获取设备名称 获取设备型号 获取设备处理器 获取设备品牌 获取设备制造商 获取设备oaid 获取设备识别码 获取mac地址 获取应用包名 获取应用签名 获取app版本 获取版本号...获取分辨率 获取国家码 获取系统语言 获取设备网络代码 获取设备网络类型 获取android版本 获取操作系统版本 获取目标sdk版本号 获取应用第一次安装时间 获取设备id public static...) { return ""; } return tm.getDeviceId(); } 获取mac地址 public static String...|| wi.getMacAddress() == null) { return ""; } return wi.getMacAddress().

3.9K30

Android11 无Root 访问data目录实现、Android11访问data目录、Android11解除data目录限制、Android11 data空白解决

Android11 无Root 访问data目录 实现 正文开始 关于Android11权限变化 作为普通安卓用户该如何方便快速地访问Android/data目录 开发者该如何实现无ROOT访问Data...解决方案 SAF方案缺点 放大招,ROOT权限直接解锁后带权访问Data目录 结语 封装好工具类 正文开始 关于Android11权限变化 谷歌Android11及以上系统采用了文件沙盒存储模式,...App界面预览 开发者该如何实现无ROOT访问Data目录 1.首先,可根据需要获取所有文件管理权限: 清单声明: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE...对呀,很明显使用传统通过文件path来实现文件管理岂不是更加方便? 我也这样觉得我当时在对Android11进行适配时候为了改动小,肯定是想用这个方法来进行适配,但是根本行不通!...当然,这个方案肯定会有些不如意,但是这已经是没方案最好办法,毕竟谷歌限制不让你访问data目录,我们某些涉及文件管理应用又确实需要访问,方案亲测可用,我已经按照以上方案app中进行了Android11

11K31
领券