最近做一个项目,发现Android6.0以上的版本获取的蓝牙地址始终为02:00:00:00,

Google一下发现Android早就封掉了相关接口,于是想到反射的方式去获取Mac地址,在此记录一下

Android 6.0以下的版本

直接使用bluetoothadapter.getaddress()

Android 6.0以上

private String getBluetoothAddress(BluetoothAdapter adapter) {
if (adapter == null) {
return null;
} Class<? extends BluetoothAdapter> btAdapterClass = adapter.getClass();
try {
Field mServiceField = adapter.getClass().getDeclaredField("mService");
mServiceField.setAccessible(true);
Object btManagerService = mServiceField.get(adapter);
if (btManagerService != null) {
return (String) btManagerService.
getClass(.getMethod("getAddress").invoke(btManagerService);
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
LogWriter.writeLog(TAG, e.getMessage());
return null;
}
}

PS:有的手机需要在蓝牙已经打开的时候才能获取到

最新文章

  1. HDFS的架构
  2. 使用phpstorm来进行svn提交
  3. Android 中onConfigurationChanged问题
  4. 150923-碎觉要-PHP,Linux
  5. ABAP 将SAP用户ID转换成用户名
  6. Java—接口与抽象类
  7. [转]MySQL中存储过程权限问题
  8. 利用jsp和servlet,MySQL实现简易报表
  9. 开启和关闭wifi的代码段
  10. 格而知之4:寻找EXC_BAD_ACCESS
  11. poj3280(区间dp)
  12. weex官方demo weex-hackernews代码解读(1)
  13. ECMAScript6词法
  14. 映射内网ftp服务器到公网后内网访问出错问题
  15. windows 操作系统发展过程
  16. golang: 利用unsafe操作未导出变量
  17. django 学习笔记(转)
  18. phpStorm 8.0.3 设置
  19. C# 在托盘显示图标
  20. 设置时间同步(Linux,Solaris)

热门文章

  1. [转] org.scalatest.FunSuite Scala Examples - Scala FunSuite 测试的例子
  2. destoon调用方法汇总 ---转载
  3. 用python开发了一个简单apache web服务端范例,在win10 + apache2.4.9 + python3.5 测试成功
  4. C# string 特殊的引用类型
  5. https证书pfx 生成 pem,crt,key
  6. MkDocs
  7. Java大法之面向对象
  8. 网络IO之阻塞、非阻塞、同步、异步总结【转】
  9. 使用javascript获取wx.config内部字段解决微信分享
  10. C# 空合并运算符 ??