问题标签 [google-nearby-connections]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
177 浏览

android - Nearby Connections API:Android 12 无法宣传和发现具有未知状态代码的设备(8037、8038、8039)

我正在开发一个使用 Nearby Connections API 和基本 P2P 策略的应用程序。突然间,奇怪的是,我无法在我的 Pixel 3a 上使用最新的 Android 12 和 Play Services 做广告和发现设备。OnFailureListeners抛出这些异常:

  • 用于发现:8037: unknown status code: 8037
  • 广告:8038: unknown status code: 8038

事实上,在文档和源代码中找不到它们。我还检查了 Google 的“Rock Papers Scissors”官方示例,它抛出了相同的错误代码。

当然,我重新安装了应用程序并重新启动并更新了我的手机。编辑:我也恢复了出厂设置,但没有帮助。但是在我使用 Android Flash Tool 降级到最新的 Android 11 后,它又开始工作了。此外,在使用不同手机的 Android 11、10 和 9 上一切正常。

任何想法是什么导致这个问题?过去两周它工作得很好,今天停止工作。我相信它需要对源代码进行深入调查(如果我可以寻求您的帮助,那将是非常棒的 Xlythe)。

0 投票
1 回答
59 浏览

android - 有没有办法通过 Nearby Share 共享链接并使用 Nearby Connections API 通过第二台设备上的自定义应用程序接收链接?

我想使用 Nearby Share 共享数据,这样我就可以避免将应用程序放在设备 1 上。然后我想在设备 2 上的自定义应用程序上接受该数据,以便我可以对其进行转换并用它做其他事情。

这可能吗?

0 投票
0 回答
51 浏览

flutter - Flutter 在 Peer to Peer 中使用 near_connections 发送和接收包

当第一个选择为“DISCOVERER”而另一个选择为“CONNECTOR”时,我在这里编写的代码似乎连接了两个设备。
当我尝试执行“SEND PACKAGE”时,它说 Payload 已发送,但另一台设备完全没有执行任何操作。

对于这个项目,我使用
https://pub.dev/packages/nearby_connections (3.1.0)
https://pub.dev/packages/permission_handler (8.3.0)
点对点策略,在这个情况下,是 P2P_CLUSTER。(可以在这里找到不同的策略 https://developers.google.com/nearby/connections/strategies

idFriend 在开始时为 0。稍后它将在每个设备上将其覆盖为每个设备上的 EndPointId。
作为连接器的设备的用户名
是 2。作为发现者的设备的用户名是 1。


另外,我在下面添加了代码,例如 acceptpackage() 和 sendpack()。sendpack() 似乎有效,而 acceptpackage() 实际上并不接受它,特别是因为 acceptpackage() 已经在 connect() 的代码中。

发送到发现者的有效负载连接器上的输出:

发现者向连接器发送有效负载的输出:

该程序的图片,用于发现者和连接器: 我的应用程序的屏幕截图

请帮我弄清楚为什么发现者或连接器都没有收到 PayLoad。

0 投票
0 回答
30 浏览

android - 可以在后台使用附近的连接 api 广告

我正在尝试实现一个使用 google 附近连接 API 的聊天,我在 API 页面构建器AdvertisingOptions.Builder中看到了一个名为 setLowPower(boolean lowPower) 的选项,但它没有在代码中实现,是否推荐/请问可以在后台进入广告模式吗?提前致谢,

0 投票
1 回答
77 浏览

android - 为什么使用 Android Nearby Share 时通过蓝牙传输文件?

Nearby Share 有时会使用蓝牙传输文件,因此速度很慢。有时传输超过 100 MB 的文件一点也不方便。最初我认为蓝牙仅用于握手目的。但后来我意识到文件本身是通过蓝牙传输的。我很想知道为什么文件可以通过wifi直接传输时通过蓝牙传输。包括 Google Files 在内的许多第三方应用程序都使用 wifi 直接传输文件。那么为什么像附近共享这样的内置功能应该使用蓝牙。Nearby Share 本身的唯一目的是在没有互联网的情况下通过 wifi 直接实现快速文件传输。因此,如果文件是通过蓝牙传输的,则使用附近共享毫无意义。

我也很想知道附近共享中存在的各种文件传输模式。共有三种模式:数据模式、仅 Wifi 模式和无 Internet 模式。我真的很想知道为什么当附近共享用于在没有互联网的情况下传输文件时,为什么需要互联网连接来传输文件。它是否用于 Web RTC 中的握手目的?

0 投票
0 回答
13 浏览

android - 在使用 google Nearby Connections API 之前已经开始向其他设备发送有效负载后,如何将有效负载发送到多个设备?

我试图sendPayload(endpointB, filePayload)在之前的 sendPayload 刚刚被调用sendPayload(endpointA,filepayload)(仍在发送)时调用。

现在,nearByConnectionClient 正在等待上一次发送完成,然后将文件发送到端点 B(第二次发送调用)。这是故意的吗?还是我错过了什么?

如果我用 发送sendPayload(allEndpoints,file),这是同时发送,但如果我一个接一个地做一个端点,我希望它能够正常工作。

因为我的应用程序架构是这样的,端点设备可以随时从主应用程序请求文件,我需要向他们发送这些文件,即使正在发生另一次发送。

0 投票
0 回答
36 浏览

android - LazyColumn 和 List 自动更新

我有一个单例类,它在所有应用程序中为我处理附近的连接 API 实时连接,我想在列表中显示它的设备,但现在它仍然不适合我,如果对象有任何问题或更好表示它的方式我想知道太少的例子:

目的:

屏幕:

我不知道为什么,但是列表没有自动更新(需要从字符串中取出,然后我回到那里重复,并在断开连接不起作用时删除项目,请建议,提前谢谢

0 投票
0 回答
9 浏览

java - Nearby Connections API:接受连接会使应用程序崩溃,并显示“侦听器不得为 NULL”

我正在尝试按照 Nearby Connections API 此处的文档使用Nearby Connections API。为此,我使用了两个设备。这些设备开始做广告和发现就好了。但是在 ConnectionLifecycleCallback 的 onConnectionInitiated() 方法中接受连接时,应用程序崩溃并抛出此错误:

E/AndroidRuntime:致命异常:主进程:com.example.testapp,PID:20824 java.lang.NullPointerException:com.google.android.gms.common.internal.Preconditions.checkNotNull(com.google .android.gms:play-services-basement@@18.0.0:2) 在 com.google.android.gms.common.api.internal.ListenerHolders.createListenerHolder(com.google.android.gms:play-services-base @@18.0.1:1) 在 com.google.android.gms.common.api.GoogleApi.registerListener(com.google.android.gms:play-services-base@@18.0.1:1) 在 com.google .android.gms.internal.nearby.zzcn.acceptConnection(com.google.android.gms:play-services-nearby@@18.0.0:1) 在 com.example.testapp.ConnectionHelper$1.onConnectionInitiated(ConnectionHelper.java: 38) 在 com.google.android.gms.internal.nearby.zzck.onConnectionInitiated(com.google.android.gms:play-services-nearby@@18.0.0:3) 在 com。com.google.android.gms.common.api.internal 上的 google.android.gms.internal.nearby.zzaa.notifyListener(com.google.android.gms:play-services-nearby@@18.0.0:9)。 ListenerHolder.zaa(com.google.android.gms:play-services-base@@18.0.1:2) at com.google.android.gms.common.api.internal.zacb.run(Unknown Source:4) at android.os.Handler.handleCallback(Handler.java:938) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:233) 在 android.app.ActivityThread .main(ActivityThread.java:8010) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631) 在 com.android.internal .os.ZygoteInit.main(ZygoteInit.java:978)internal.ListenerHolder.zaa(com.google.android.gms:play-services-base@@18.0.1:2) at com.google.android.gms.common.api.internal.zacb.run(Unknown Source:4 ) 在 android.os.Handler.handleCallback(Handler.java:938) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:233) 在 android.app .ActivityThread.main(ActivityThread.java:8010) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631) 在 com.android .internal.os.ZygoteInit.main(ZygoteInit.java:978)internal.ListenerHolder.zaa(com.google.android.gms:play-services-base@@18.0.1:2) at com.google.android.gms.common.api.internal.zacb.run(Unknown Source:4 ) 在 android.os.Handler.handleCallback(Handler.java:938) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:233) 在 android.app .ActivityThread.main(ActivityThread.java:8010) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631) 在 com.android .internal.os.ZygoteInit.main(ZygoteInit.java:978)在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller 的 java.lang.reflect.Method.invoke(Native Method) 的 android.app.ActivityThread.main(ActivityThread.java:8010) 的循环(Looper.java:233)。在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978) 运行(RuntimeInit.java:631)在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller 的 java.lang.reflect.Method.invoke(Native Method) 的 android.app.ActivityThread.main(ActivityThread.java:8010) 的循环(Looper.java:233)。在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978) 运行(RuntimeInit.java:631)

ConnectionLifecycleCallback 的代码如下所示:

EndpointDiscoveryCallback 的代码如下所示:

如果有人能指导我完成这件事,我将不胜感激!

0 投票
1 回答
25 浏览

android - Nearby Connections API:为什么我的 Galaxy S8 不支持 Wi-Fi Direct?

我正在开发一个使用 Nearby Connections API 的应用程序。连接和文件传输似乎在其他设备上运行良好,但我在使用三星 Galaxy S8 时发现了一些奇怪的行为。查看日志后,我发现此消息:

重要的是my supported mediums ([ WIFI_HOTSPOT BLUETOOTH BLE NFC ]),缺少WIFI_DIRECT,这意味着我的 S8 无法通过 Wi-Fi Direct 与其他手机建立连接。这似乎很奇怪,因为我测试过的所有其他手机都支持 Wi-Fi Direct。这也很奇怪,因为我的 S8 能够使用 Wi-Fi Direct 执行不同的任务,正如设置中的 Wi-Fi Direct 界面截图所示。

附近连接无法在我的 S8 上使用 Wi-Fi Direct 是否有特殊原因?

0 投票
0 回答
49 浏览

android - Nearby Connections API:在两个特定设备上使用 Wi-Fi LAN 时持续断开连接

我正在开发一个使用 Nearby Connections API 的应用程序,该应用程序涉及发送一系列大文件(每个大约 20-30 MB)。我正在使用 P2P_STAR 策略,因为我打算让一个“主”设备协调一组“工作”设备,尽管这个问题只涉及两个设备。

每当我通过共享无线接入点连接我的三星 Galaxy S8 和 Galaxy Tab S7 FE 后尝试传输一些文件时,都会不可避免地导致断开连接。根据日志,问题似乎在重复超时后开始,例如:

这最终导致端点断开连接:

我已在此处上传了所有与附近相关的消息日志。

我能做些什么来防止这种情况发生吗?