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) 中的设备蓝牙地址 的相关文章

  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 未找到 Gradle DSL 方法:“versionCode()”

    构建我的 Android 项目时遇到问题 我使用Grgit https github com ajoberstar grgit填写versionCode and versionName在 gradle 中 一切工作正常 直到我将 Andro
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • doInBackground 运行时是否可以停止 asynctask?

    我正在 ActivityB Oncreate 中创建异步任务 在该任务中 我正在运行无限 while 循环doInBackground 当我转到上一个活动并再次回到该活动时 创建了另一个异步任务 我的问题现在是两个无限 while 循环正在
  • 在 Android 中的活动、服务和应用程序之间传递变量

    有人可以给我提供以下活动 服务 应用程序组合的示例吗 我拥有这三个 但我已经把我的应用程序弄得一团糟 试图在这个地方传递一堆变量 现在我不知道发生了什么 请注意 我是 Android 新手 最近我一直在努力解决这个问题 因为有很多方法可以实
  • 启动 Twitter 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 Twitter 应用程序的 Android Intent https stackoverflow com questions 2077008 android intent for twitter ap
  • 更改 AChartEngine 中的图例大小

    我想专门更改饼图的图例大小输出 我已经尝试了所有可以找到的 AChartEngine 方法 但没有一个只能更改图例文本大小 我必须重写 onDraw 函数吗 如果是这样 怎么办 要设置图例高度 请使用 renderer setLegendH
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • Android - 除了普通 SSL 证书之外还验证自签名证书

    我有一个通过 SSL 调用 Web 服务的 Android 应用程序 在生产中 我们将拥有由受信任的 CA 签名的普通 SSL 证书 但是 我们需要能够支持自签名证书 由我们自己的 CA 签名 我已经成功实施了接受自签名证书的建议解决方案
  • 下载图像并显示它

    应用程序的主要目的是下载和显示图像 但是当我尝试启动应用程序时它崩溃了 这是我的代码 private DownloadImageTask task protected void onCreate Bundle savedInstanceSt
  • Locale.getDefault().getCountry() 返回空字符串

    我正在尝试使用国家 地区代码获取用户语言 例如en US es es 但是当我使用Locale getDefault getCountry 它返回空字符串 虽然它给了我正确的语言Locale getDefault getLanguage N
  • Android 在启动时启动服务,如何在设备重启后重新启动服务类?

    我需要在启动时启动一项服务 我搜索了很多 他们正在谈论广播接收器 由于我是 Android 开发新手 所以我对 Android 上的服务并没有清楚的了解 请提供一些源代码 您的接收者 public class MyReceiver exte
  • Android:如何监控WiFi信号强度

    当信号强度发生变化时我会收到通知 我尝试创建以下方法并在 onCreate 中调用它 private void initializeWiFiListener Log i TAG executing initializeWiFiListene
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • Android:如何使视图增长以填充可用空间?

    这看起来很简单 但我不知道该怎么做 我有一个带有 EditText 和两个 ImageButtons 的水平布局 我希望 ImageButtons 具有固定大小 并且 EditText 占据布局中的剩余空间 如何才能做到这一点
  • 如何更改锁屏自定义文本(所有者信息)?

    我写了程序代码 String message This is test Settings System putString context getContentResolver Settings Secure LOCK PATTERN EN
  • Android:如何通过右侧的十字按钮清除EditText

    我创建了一个EditText用于搜索 左侧包含搜索图标 右侧包含图标
  • 如何使 tablayout 文本大小相等?

    这就是我所做的 我为文本创建了一种样式
  • Android应用程序kill事件捕获

    我想在我的应用程序被终止时执行一些操作 可以使用哪种方法来实现此目的 我正在开发 Android 5 0 这个问题的关键在于 您必须了解您的申请是否可以收到任何 当您的应用程序在任何情况下被终止时的额外回调 下面的答案是由德文连线 http
  • Amazon IAP 不会调用 onPurchaseResponse

    我有一个 Android 应用程序 它使用 IAP 我正在发送PurchasingManager initiateGetUserIdRequest 并得到用户识别成功 in onGetUserIdResponse 得到回复后Purchasi

随机推荐

  • 尝试使用外部域的用户名更改本地 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