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

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

慕璞
2023-03-14

如果应用程序在前台,我可以停止广告,并调用bleAdvertiser.stop广告()方法。
当我的屏幕关闭而我的应用程序仍在做广告时,问题就会出现。当我的屏幕关闭时,应用程序会做广告,这是意料之中的。但是,当我的应用程序进入前台并按下一个执行bleAdvertiser.stop广告()的按钮时,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);

共有1个答案

宗政霄
2023-03-14

我怀疑广告回调变量与您第一次开始广告时的实例不同。如果不是,停止将不起作用。

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

 类似资料:
  • 我的应用程序运行良好,但添加了后,它就停止了同步。 这就是错误所在。 清单合并失败:[com.android.support:RecyclerView-V7:26.0.2]AndroidManifest.xml:25:13-35中的属性元数据#android.support.version@Value Value=(26.0.2)也出现在[com.android.support:CustomTab

  • 使用以下方法将用户添加到角色中没有问题 我收到“错误的请求”,在Fiddler中“一个或多个属性无效”。没有额外的信息。

  • 我想得到的活动和广告表现的报告。到目前为止,我已经得到了竞选业绩报告,但我无法得到广告业绩报告。 我在客户端库中看到了谷歌广告api和它们的例子。但我无法理解如何获得广告报道。 我正在制作一个函数,通过谷歌广告api为我获取报告。 谷歌广告Api:https://developers.google.com/google-ads/api/docs/fields/ad_group_ad#ad_grou

  • 我正在尝试在Flatter应用程序中实现AdMob的广告。我两天前创建了Admob Id,我的帐户已被Admob批准。我测试了应用程序(横幅广告)的测试应用程序ID和它的工作,但它与我的真实应用程序ID不工作。 正在寻求帮助

  • 我决定从旧的azure门户创建应用程序并将应用程序设置为多租户。 我已经设置了OAuth 2.0令牌endpoint(< code > https://log in . Microsoft online . com/ 如果我尝试使用任何已注册的Office 365用户ID(我用于登录Azure的用户除外)进行授权,则会收到此错误: 来自身份提供者“https://STS . windows . n

  • 我在我的应用程序中使用Codelab:https://codelabs.developers.google.com/codelabs/exoplayer-intro/#3的示例实现了ExoPlayer,算法与https://medium.com/google-exoplayer/playing-ads-with-exoplayer-and-ima-868dfd767ea的示例唯一的区别是我使用而不