Hello Beacons 应用未检测到虚拟信标(使用 Beacon Simulator 应用创建)

Hello Beacons app not detecting virtual beacon (created with Beacon Simulator app)

我已按照 https://codelabs.developers.google.com/codelabs/hello-beacons/ 上的 Hello Beacon 应用教程中概述的十个步骤进行操作。构建期间没有抛出任何错误。唯一的问题是 Hello Beacon 应用程序未检测到虚拟信标(使用 Beacon Simulator 应用程序)。我知道问题不在于信标模拟器,因为信标工具应用程序 Google.

检测到它

我不认为代码有任何问题,因为我完全按照教程没有偏差。但是,代码和 google 开发人员控制台中的一些区域必须定义参数。我怀疑这可能是导致问题的原因:

  1. 我不确定我是否正确定义了"some_namespace"、"some_type"。

    SubscribeOptions options = new SubscribeOptions.Builder() .setStrategy(Strategy.BLE_ONLY) .setFilter(new MessageFilter.Builder() .includeNamespacedType("some_namespace", "some_type").build()) .build();

下面是我试过的几个参数 –

我也尝试过使用和不使用 -

实现代码
 .setFilter(new MessageFilter.Builder()
 .includeNamespacedType("some_namespace", "some_type")
 .build()
  1. 我不确定 运行 生成 SHA1 指纹的命令在哪里,因为我不完全理解它的用途。我尝试从 .android 文件夹、hello beacons 文件夹和 JRE bin 文件夹生成它

Google Developers Console - SHA1 fingerprint / API Key

  1. 我已将在 Google Developers Console 创建的 API 密钥放在 Android Manifest 文件中:

    <meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value="API_key_placed_here" />

我不确定那是否是唯一需要放置 API 键的地方。

如果社区能提供任何帮助来解决此问题,我将不胜感激。

我终于让它工作了。唯一的问题是使用包名称和 SHA1 指纹在 API 密钥上设置的访问限制。删除后,Hello Beacons 应用程序可以检测到我的模拟信标。

在可选步骤 10 中,我不确定是什么原因导致了错误。它与提供的包名称 (com.google.android.gms.nearby.messages.samples.hellobeacons) 或 SHA1 密钥有关吗?很难说。

希望对您有所帮助。