gpt4 book ai didi

android-studio - BluetoothLeScanner 从不调用它的任何回调方法

转载 作者:行者123 更新时间:2023-12-02 12:52:46 32 4
gpt4 key购买 nike

我对 Android 和 Kotlin 很陌生,所以我可能会遇到一些非常简单的错误,但据我所知,当我调用 BluetoothLeScanner.startScan() 时,我创建的 ScanCallback 类的所有可能回调方法都不是曾经打电话。

我知道在 API 级别 23 及更高级别仅将位置权限放在 list 中可能还不够,因此我编写了代码来处理该问题并且我对我的应用程序同时具有粗略和精细位置权限感到满意

这是我对 OnScanResult 方法的覆盖:

override fun onScanResult(callbackType: Int, result: ScanResult?) {
super.onScanResult(callbackType, result)
mScan = true
}

我在每个回调方法中都设置了一个断点,当我在代码运行时将鼠标悬停在这些断点上时,我看到消息“No executable code found at line...”这是一个非常令人不安的消息(我怀疑指出问题出在哪里)但是(a)当一切正常时,那里怎么可能没有代码,(b)你会怎么做?
对此的更新:我认为该消息是转移注意力。我现在已将断点移动到回调函数中的其他位置,并且不再看到“不可执行代码”消息。看起来 Android Studio 允许您在没有实际代码的行上设置断点!
所以我们回到最初的问题——为什么我们没有收到回调?

看起来现在已经解决了:
(1) 我确实在手机上找到了与打开位置不同的设置。它是启用蓝牙扫描。然而它实际上并没有什么不同 (2) 看起来真正的问题是误解了您使用 setDeviceName() 传递给 ScanFilter Builder 的字符串的含义。我们正在尝试扫描的硬件蓝牙模块中有一个字符串,称为设备名称,我正在扫描它。当我转而寻找 Beacon 广告数据时,它找到了。

非常感谢您的建议(我认为只有 1 个)

最佳答案

在 list 中授予权限与使用它的应用程序不同。
对于 ble,您需要提供位置和蓝牙权限。然后:

  • 在应用程序中(在手机上)浏览您打开的应用程序
  • 找到您的应用并单击左上角的 3 个点
  • 点击应用信息
  • 权限
  • 将位置切换到

  • 以下是一些方便的代码:
    public void checkPermission() {
    if (Build.VERSION.SDK_INT >= 23) {
    if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {

    } else {
    ActivityCompat.requestPermissions(this, new String[]{
    Manifest.permission.ACCESS_FINE_LOCATION,
    Manifest.permission.ACCESS_COARSE_LOCATION,}, 1);
    }
    }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
    } else {
    checkPermission();
    }
    }

    Ps大家注意安全

    关于android-studio - BluetoothLeScanner 从不调用它的任何回调方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57412943/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com