Oreo (8.1) 中的设备蓝牙地址

2024-04-05

我需要获取设备的蓝牙MAC地址。
在 Android 6 之前,这很简单BluetoothAdapter.getDefaultAdapter().getAddress()。之后我们不得不使用一个简单的解决方法:String macAddress = android.provider.Settings.Secure.getString(context.getContentResolver(), "bluetooth_address");。但后来(在 Android 8 AFAIK 中)它也被关闭了,但发现了另一种解决方法:

    BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    String bluetoothMacAddress = "";
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
        try {
            Field mServiceField = bluetoothAdapter.getClass().getDeclaredField("mService");
            mServiceField.setAccessible(true);

            Object btManagerService = mServiceField.get(bluetoothAdapter);

            if (btManagerService != null) {
                bluetoothMacAddress = (String) btManagerService.getClass().getMethod("getAddress").invoke(btManagerService);
            }
        } catch (NoSuchFieldException e) {

        } catch (NoSuchMethodException e) {

        } catch (IllegalAccessException e) {

        } catch (InvocationTargetException e) {

        }
    } else {
        bluetoothMacAddress = bluetoothAdapter.getAddress();
    }

但从 Android 8.1 开始尝试访问该方法会抛出异常:

java.lang.reflect.InvocationTargetException Caused by: java.lang.SecurityException: Need LOCAL_MAC_ADDRESS permission: Neither user 10141 nor current process has android.permission.LOCAL_MAC_ADDRESS,这意味着该方法需要权限,仅适用于系统级应用程序。

那么问题是,是否有任何解决方法可以在 Android 8.1 中获取蓝牙地址?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oreo (8.1) 中的设备蓝牙地址 的相关文章

  • 当活动被破坏时如何保存状态

    public class Talk extends Activity private ProgressDialog progDialog int typeBar TextView text1 EditText edit Button res
  • 在 Android 模拟器上运行完整的 Android 手机 ROM

    正如标题所说 是否可以在 Android 模拟器中运行完整的 Android 设备 ROM 是的 你可以 但让它 100 工作可能很困难 大多数 ROM 都包含其运行硬件的特定驱动程序 我并不是 100 全力以赴 但可以尝试以下步骤 创建
  • 在android Gridview中合并行和列

    我正在android中做一个图像查看页面 我需要在某些地方合并行 在某些地方合并列 我们可以在gridview中做到这一点吗 如果我们选择任何合并图像 则应选择整个图像视图 请任何人告诉我一个建议 提前致谢 Try 非对称网格视图 http
  • 具有自定义厚度的虚线分隔符

    我有一个虚线分隔符
  • Android:将图像裁剪为特定尺寸

    我的目的是让用户从图库中选择一张图像 然后进行裁剪活动 但是 我需要将定义裁剪蒙版的矩形锁定到某个尺寸 然后用户只需重新定位它即可显示图像的一部分 关于如何做到这一点有什么想法吗 Thanks T Intent intent new Int
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • 使用全局变量从内部函数获取空字符串

    请帮助我解决一些小问题 我确信你能做到 D 我试图在 firestore 文档 user cases information 上设置一个字段 其中包含一个字段 case number 首先我声明这个全局变量 private String c
  • 如果未安装应用程序,深层链接将重定向到 Play 商店

    我在我的应用程序中使用深度链接的概念 我真正想要的是 当我共享我的应用程序中的链接时 它工作正常 它会转到我想在我的应用程序中打开的活动 但问题是当用户没有这个时应用程序此链接通过手机浏览器打开 显示错误 未找到 但如果未安装应用程序 我想
  • 返回到上一个活动的最后状态

    我有两个活动 A 和 B 当应用程序启动时 活动 A 会被加载 我会从数据库将数据加载到其中 我可以毫无问题地转到活动 B 但是当我返回活动 A 时 会查看旧数据一段时间 然后重新加载活动 知道如何解决这个问题吗 在从数据库加载数据之前清除
  • Ionic 框架 - Config.xml

    我需要修改 config xml 文件 因此在针对 Android 进行编译时我会获取以下权限
  • webview 中的 android 移动 Twitter 页面无法打开?

    我正在尝试打开以 https 开头的 Twitter 页面webview在安卓中 但它没有打开 并且持续加载时出现黑屏 屏幕截图如下 Edit 在主网络视图中我有 Twitter 页面的链接https twitter com mytwitt
  • 如何去掉android状态栏的电池图标?

    我通过去掉背景图像来删除 Android 中显示网络 电池和时间信息的状态栏 但图标仍然存在 我也想知道如何删除电池图标 不是用于应用程序 而是用于框架开发 提前致谢 你试过打电话吗 getWindow setFlags WindowMan
  • 绘制平滑曲线

    我想创建更平滑的曲线 而不仅仅是线角 这是我现在画的图 这是我的代码 case FREEHAND float pts float ptk ptk new float 2 imageMatrix invert inv if mCurrentS
  • 如何在移动应用程序上连接到服务器?

    我是移动应用程序的新手 我基本上来自网络开发平台 我只是在玩 App Framework LungoJS Jquery Mobile kendo 等移动框架 以获得该垂直领域的一些知识 我正在开发的应用程序仍然处于 UI 级别 我所需要的只
  • 无法使用 Zxing Android 扫描 Code 128

    我已将 ZXing 条码阅读器集成到我的 Android 应用程序中 它可以扫描大部分代码 但我有一张电费单 它无法扫描 使用 Galaxy Ace 5 0MP 我认为问题是由于相机分辨率和焦点造成的 因为当我使用 Xperia SL 12
  • Android:是否可以在可绘制选择器中使用字符串/枚举?

    问题 Q1 有人设法让自定义字符串 枚举属性在 xml 选择器中工作吗 我通过以下 1 获得了一个布尔属性 但不是字符串属性 编辑 感谢您的回答 目前 android 仅支持布尔选择器 原因请参阅已接受的答案 我计划实现一个复杂的自定义按钮
  • Recyclerview项目点击涟漪效果[重复]

    这个问题在这里已经有答案了 我正在尝试添加Ripple影响到RecyclerView的项目 我在网上查了一下 但找不到我需要的东西 我努力了android background归因于RecyclerView本身并将其设置为 android
  • 我想要有条件的登录导航,没有 MAIN 片段或按钮

    我正在使用 Android Jetpack 导航组件 实时数据和 Firebase 我希望工作流程就像用户打开应用程序时一样 然后根据登录 注销状态导航到登录 配置文件片段 而不需要任何主片段或按钮 请 我的应用程序中没有主要片段 用户启动
  • 从 Dropbox 下载文件并将其保存到 SDCARD

    现在我真的很沮丧 我想从 Dropbox 下载一个文件并将该文件保存到 SD 卡中 我得到的代码为 private boolean downloadDropboxFile String dbPath File localFile throw
  • PhoneGap Build Android 不显示闪屏

    这是我的 config xml 中与启动屏幕相关的代码

随机推荐

  • 尝试使用外部域的用户名更改本地 Azure AD B2C 用户的密码时出现错误 AADSTS50034

    我正在为我的 Angular 6 前端应用程序开发 Azure AD B2C 并使用 Microsoft Graph API 来更改登录用户的密码 我正在得到access token使用授权代码流程 当用户有这样的用户名时它工作正常 ema
  • iOS 中拉动刷新跳转

    当我慢慢下拉刷新时 我看到 UIActivityIndi cator 圆圈在开始刷新之前慢慢变得更加完整 就在圆圈完成并且刷新实际触发之前 内容会向下跳跃 急速跳动 然后圆圈开始旋转 我只有在慢慢拉下时才会注意到这一点 我正在使用拉动来刷新
  • 使用 parse_dates 解析 pandas 中多列的日期

    我有一个文本文件 其中月 日和年位于不同的列中 我想将它们合并为一列并以日期格式隐藏它 我正在尝试在 pandas read table 中使用 parce dates 选项 但它不起作用并给我错误file structure not ye
  • Dokku 在尝试 git Push 时要求输入密码

    我在数字海洋上创建了一个带有 ubuntu 和 dokku 图像的水滴 我已关注this https www digitalocean com community articles how to use the digitalocean d
  • 在 Rails 应用程序中输出 JSON

    好的 Rails 3 新开发人员在这里 我希望我的 jquery 能够从项目的 Rails 3 应用程序获取 json 对象 这是我的控制器 def yourprojects projects Projects all current us
  • 使用 QNetworkAccessManager 支持 https。运行时遇到 SslErrors

    我正在使用 QNetworkAccessManager 执行 https get 操作 我在运行时遇到 SSLErrors 经过一段时间的研究 我能够在安装 OpenSSL 后运行我的程序 我需要两个 dll libeay32 dll 和
  • 将 URI 路径传递给 JAX-RS 提供者

    我最近实现了 Jersey JAX RS Rest 服务 我创建了一个 JIBX 提供程序 它允许在 XML 和 Java 类型之间进行解组和编组 我还想通过在 URL 路径中指定版本来对我的服务进行版本控制 版本控制将包括用于编组和解组
  • 将 iPhone 时间与服务器同步的最佳方法

    我有一个客户端服务器模型 其中服务器将发送一些带有日期参数的数据 iPhone 需要渲染它 服务器和 iPhone 将驻留在不同的时区 所以我需要同步两者的时间 假设用户在 07 18 2011 04 45 EDT 服务器时间 完成了一些活
  • XCloseDisplay 返回什么?

    我从各种文档中可以看到XCloseDisplay返回一个整数 我怀疑这是一个错误代码 我应该用这个值做什么 是错误代码吗 如果是这样我该如何处理该错误 我查看了源代码 lib X11 ClDisplay c It says return 0
  • iOS 8 Xcode 6.1 EXC_BREAKPOINT (SIGTRAP) 仅适用于捆绑应用程序

    我的应用程序工作正常 直到我升级到 OSX 10 10 Yosemite 和 Xcode 6 1 现在 每当我捆绑应用程序进行分发时 我都会在应用程序的特定位置收到一个 sigtrap 在模拟器中或者如果我将应用程序直接加载到手机上 则不会
  • 是否有将类转换为字符串的标准方法

    在Java中 标准是定义方法toString 返回类的字符串表示形式 除了超载之外operator lt lt C 中有这样的标准吗 我知道有std to string 方法来获取数字的字符串表示形式 C 标准是否谈到定义方法to stri
  • 将 OutputStream 转换为 ByteArrayOutputStream

    我正在尝试转换OutputStream to a ByteArrayOutput溪流 我无法找到任何关于如何做到这一点的明确简单的答案 这个问题是在 StackOverflow 上的问题标题中提出的 但问题的正文询问如何更改ByteArra
  • IE 中字段集的背景颜色超出边界

    在 IE 中 字段集的背景颜色超出边界 我有一个表格 背景颜色设置为蓝色 字段集的背景颜色设置为白色 我该如何在 IE 中解决这个问题 My CSS fieldset margin 10px fieldset legend font siz
  • Google 网络字体和 Windows XP

    我的网站正在使用 google 字体 但我在 XP 上遇到了一些问题 也就是说 因为 XP 默认情况下没有抗锯齿功能 所以所有字体都是像素化的 即使在 Firefox 和 Chrome 等浏览器中也是如此 有没有办法解决这个问题 或者 XP
  • Windows 版 Safari 和 Mac 版 Safari 之间的差异

    从开发人员的角度来看 Mac 版 Safari 和 Windows 版 Safari 有哪些区别 我认为这可以归结为评估之间的差异 如果我错过了什么 请纠正 布局渲染 JavaScript 行为 最终要做出的决定是 开发人员能否仅在 Saf
  • jQuery 请求未定义的 url(与 phpdevshell 一起使用)

    我正在使用 phpdevshell 使用最新的 jQuery 创建一个应用程序 现在 在我看来没有任何原因的情况下 jQuery 开始请求一个以 undefined 结尾的 url 但该 url 不存在并导致 404 它寻找这个网址 htt
  • 迭代 JObject 键

    我有以下内容JObject作为回报https gate io api2 trade https gate io api2 tradeAPI 我如何迭代每个作为单独硬币的密钥也获得它的值 我尝试使用 Newtonsoft 解析它JObject
  • gulp 任务来处理可写的文件

    我在VS2015项目中使用Gulp来运行jscs http jscs info 在 JavaScript 文件上使用fix选项集 目的是修改读取的同一文件 即源和目标相同 var gulp require gulp var jscs req
  • 无法在 Intellij IDEA 中设置 Java 断点

    我试图将断点放入 GoogleAppEngine 源代码 SDK 1 7 0 但 IDEA Ultimate 11 0 2 一直告诉我Warning No executable code found at line 482 in class
  • Oreo (8.1) 中的设备蓝牙地址

    我需要获取设备的蓝牙MAC地址 在 Android 6 之前 这很简单BluetoothAdapter getDefaultAdapter getAddress 之后我们不得不使用一个简单的解决方法 String macAddress an