Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android BLE广告商即使调用了停止广告方法也会发送信标,特别是当应用程序从后台返回时_Android_Bluetooth Lowenergy_Beacon - Fatal编程技术网

Android BLE广告商即使调用了停止广告方法也会发送信标,特别是当应用程序从后台返回时

Android BLE广告商即使调用了停止广告方法也会发送信标,特别是当应用程序从后台返回时,android,bluetooth-lowenergy,beacon,Android,Bluetooth Lowenergy,Beacon,如果应用程序位于前台,我可以停止广告,并调用bleAdvertiser.stopAdvertising()方法。 当我的屏幕关闭且我的应用程序仍在做广告时,问题就会出现。当我的屏幕关闭时,应用程序会做广告,这是意料之中的。但是,当我的应用程序出现在前台时,我按下了一个按钮,该按钮会执行bleAdvertiser.stopAdvertising(),BLE指示灯仍然亮着。我通过扫描第三个名为nRF Connect的pert应用程序进行了测试。 为了确保这不是nRF Connect应用程序的问题,我

如果应用程序位于前台,我可以停止广告,并调用
bleAdvertiser.stopAdvertising()
方法。
当我的屏幕关闭且我的应用程序仍在做广告时,问题就会出现。当我的屏幕关闭时,应用程序会做广告,这是意料之中的。但是,当我的应用程序出现在前台时,我按下了一个按钮,该按钮会执行
bleAdvertiser.stopAdvertising()
,BLE指示灯仍然亮着。我通过扫描第三个名为nRF Connect的pert应用程序进行了测试。
为了确保这不是nRF Connect应用程序的问题,我用一块硬件板对其进行了测试,该硬件板可以检测到BLE信标,并且得到了相同的结果,这意味着我的应用程序仍在发送信标。
当我关闭/销毁应用程序时,信标停止(在选项卡中横向滑动)。
我在我的应用程序中执行以下操作:

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bleAdvertiser = bluetoothAdapter.getBluetoothLeAdvertiser();
advertiseSettings = new AdvertiseSettings.Builder() ....
bleAdvertiser.startAdvertising(advertiseSettings, advertisedata, advertisingCallback);
按下停止信标的按钮时,我执行以下操作:

bleAdvertiser.stopAdvertising(advertisingCallback);

我怀疑
advisingcallback
变量在某种程度上与您第一次开始做广告时的实例不同。否则,停止将不起作用


我建议在开始和停止时都记录该实例,以查找任何差异。很容易让Android应用程序生命周期回调意外地改变变量,从而导致类似的问题。

我怀疑
advisingcallback
变量与您第一次开始发布广告时的情况不同。否则,停止将不起作用

我建议在开始和停止时都记录该实例,以查找任何差异。很容易让Android应用程序生命周期回调意外地改变这样的变量,导致这样的问题