当前位置: 首页 > 知识库问答 >
问题:

不呼叫onLeScan

吴德辉
2023-03-14

我在调用我的onLeScan时遇到问题。我在开始扫描中放置了一个标签,每次都会被调用。出于某种原因,我的onLeScan永远不会被调用。有人看到我所做的有问题吗?onLeScan应该在开始扫描后立即调用,对吗?

private void startScan() {
       Log.i(TAG, "Starting Scan");
       mBluetoothAdapter.startLeScan(this);
       setProgressBarIndeterminateVisibility(true);
       mHandler.postDelayed(mStopRunnable, 5000);
}

@Override
public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) {
    Log.i(TAG, "IN OnLeScan");
    Log.i(TAG, "New LE Device: " + device.getName() + " @ " + rssi);
    runOnUiThread(new Runnable() {
        @Override
        public void run(){
            DeviceBeacon beacon = new DeviceBeacon(device.getName(), device.getAddress(), rssi);
            mHandler.sendMessage(Message.obtain(null, 0, beacon));
        }
    });
}

编辑更改了我的onLeScan函数。仍然不起作用,但我认为我正在走向正确的道路。DeviceBeacon是一个只包含方法的类:getName()、getSignal()和getAddress()

编辑2我不确定我的错误在哪里。我有2个nexus 7,我有bluetooth和bluetooth\u管理权限,以及额外的一行,以确保我只搜索蓝牙设备。startLeScan返回true。只是在该地区找不到任何设备。有什么原因吗?我甚至将这两个设备的可见性都设置为true。

如果你想看一些代码,请编辑3 Git回购。https://github.com/cshunger/AndroidBluetoothTouch

编辑4我的日志目录:

01-12 01:18:59.728: I/BluetoothTouch(14510): Starting Scan
01-12 01:18:59.728: D/BluetoothAdapter(14510): startLeScan(): null
01-12 01:18:59.738: D/BluetoothAdapter(14510): onClientRegistered() - status=0 clientIf=5
01-12 01:19:04.763: I/BluetoothTouch(14510): Stoping Scan
01-12 01:19:04.763: D/BluetoothAdapter(14510): stopLeScan()

共有2个答案

桑博远
2023-03-14

您需要Androidanifest.xml中的两个权限才能扫描设备:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
梁俊智
2023-03-14

使您的两个设备都可以通过蓝牙发现。

 类似资料:
  • 1、接口声明 如果您希望在自己的CRM系统嵌入呼叫中心能力,需要对接智齿呼叫中心能力,在对接前请您阅读如下对接流程,以便您更好的完成对接。如果只对接基本呼叫能力,预计对接及调试过程1周左右即可完成。 第一步:获取第三方用户接口调用唯一凭证 请联系您的售后经理,获取您企业的如下信息: 1、companyid(企业id) 2、appid(第三方用户接口调用唯一凭证id) 3、app_key(第三方用户

  • 我是RXJava的新手。在一个场景中,我希望调用第一个登录webservice(),如果成功,则希望调用另一个webservice()以获取用户信息。

  • 据我所知,Twilio处理呼叫转移的方式和telcom运营商的方式是有区别的。 在第一种情况下,对于标准运营商转发,假设A呼叫B,如果B不应答(有条件呼叫转发),或者他们设置为总是转发(无条件呼叫转发),呼叫将被转发给C。换句话说,呼叫从红线路由到紫色。这是在运营商方面完成的(B的电话甚至不需要打开就可以工作)。 但是,在Twilio的情况下,如果A已经在与Twilio(紫色路径)对话,并且应用程

  • 我举了以下例子: 我为Profile类创建了复杂的模型管理器,并且我构建了一个视图来列出大量的人。我试图计算数据库中的所有内容,所以我想从PersonQuerySet调用配置文件管理器。 为此,我需要做如下工作: 然后我应该能够从SQL检索person.profile.computed_revenue,函数“with_computed_revenue”是注释computed_revenue的Pro

  • 是否有一个gradle插件或任何其他方法调用hiberNate工具hbm2ddl任务来从注释的类生成数据库模式,而不必列出一些配置文件中的所有实体(@Entity),但在类路径中发现它们? 最好是针对Hibernate5,但Hibernate4也可以。

  • 本章主要讲述智齿客服系统中,呼叫中心业务模块的全部介绍,将以呼叫管理员和呼叫客服两个角色来进行讲解; 同时还会单独介绍IVR的配置流程。 5.1.客服业务-作为呼叫管理员 作为呼叫管理员,在本节主要介绍呼叫管理员对企业下的呼叫客服成员以及呼叫相关业务设置进行的操作。 技能组管理 通话设置 呼叫质检评分方案设定 路由策略设置 队列溢出策略设置 IVR设置 号码管理 5.1.1.技能组管理 技能组包括