Articles of wifi direct

如何估计两个Android设备之间的距离? (蓝牙首选)

目标不是真正的距离。 这更简单。 目标是检查另一台设备是否非常接近 。 对或错。 假设10或15厘米是关闭的,所以我们的检查是正确的,并且任何远离检查的设备都是错误的。 我的第一种方法是使用api的方法fetchUuidsWithSdp()但它失败了! 无论是在几个cms之外还是在大房间另一端的设备,延迟似乎都是一样的! 任何解决方案即使没有蓝牙也是可以接受 例如,我完全不熟悉wifi直接p2p协议。 也许有一些东西可以用来粗略估计距离。 编辑:我正在阅读有关接收信号强度指示器( RSSI )的信息。 这可以用于我们的特定情况,粗略估计设备之间的距离。 但也许可能有某些东西需要结合才能提高准确性。 编辑:我把Ralgha的答案放到测试中。 我确实建立了一个连接,并且有一个小的协议来在设备之间进行乒乓 。 当1字节平均延迟时非常接近时为22.6000毫秒,而在房间的另一角时则为22.6087毫秒。 当ping为1024字节时,平均延迟在非常接近时为40.3173毫秒,在房间的另一角时为32.3138毫秒。 毕竟, 延迟确实没有任何关于距离的信息 ! 谢谢!

通过Wi-Fi Direct进行广播

我正在考虑通过多个Android设备之间的Wi-Fi Direct连接进行广播的可能性。 我创建了一个简单的消息广播应用程序来测试它是否有效,但到目前为止我还没有能够广播消息。 当我尝试发送数据包时,我得到一个SocketException (网络无法访问): 03-20 13:23:00.148: E/UdpBroadcaster(4180): sendto failed: ENETUNREACH (Network is unreachable) 03-20 13:23:00.148: E/UdpBroadcaster(4180): java.net.SocketException: sendto failed: ENETUNREACH (Network is unreachable) 03-20 13:23:00.148: E/UdpBroadcaster(4180): at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:496) 03-20 13:23:00.148: E/UdpBroadcaster(4180): at libcore.io.IoBridge.sendto(IoBridge.java:465) 03-20 13:23:00.148: E/UdpBroadcaster(4180): at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:182) 03-20 13:23:00.148: E/UdpBroadcaster(4180): at java.net.DatagramSocket.send(DatagramSocket.java:307) 03-20 13:23:00.148: E/UdpBroadcaster(4180): at com.example.android.wifidirect.UdpBroadcaster.sendMessage(UdpBroadcaster.java:59) 03-20 13:23:00.148: E/UdpBroadcaster(4180): at com.example.android.wifidirect.UdpBroadcaster.run(UdpBroadcaster.java:44) 03-20 […]

Android iOS直接通信(蓝牙)。 可能吗?

首先,我是一名Android开发人员,因此问题是所有iOS开发人员。 是否有可能实现Android iPhone / iPad 直接通信 ? 有些人声称这是不可能的,其他人声称是这样。 我猜两种可能的技术是蓝牙和/或Wi-Fi Direct。 不建议使用Wi-Fi Direct,因为Gingerbread不支持它,据我所知,它也不支持iPhone (可能是iPhone 6,因为我从谣言中听说过) 已经知道使用GameKit在iOS设备之间实现蓝牙通信,这里是参考 。 我不明白与GameKit沟通时有什么特别之处 ? 消息的开头和结尾是否以某种方式包含额外的字节? 好的,我们可以在Android中以相同的方式包装消息! 消息加密了吗?!! 如果是这样,我们可以在Android设备收到它们时对它们进行解密吗? 任何想法,变通方法或其他黑客解决方案都是最受欢迎的!

Android Wifi Direct:连接到已知对等端时,避免用户接受

使用WiFi Direct连接到对等端时,需要用户的许可。 我知道如果没有用户永远不会给予许可,就无法建立连接,并且有针对此类function的function请求: https : //code.google.com/p/android/issues/detail?id = 30880 但是我不需要这个function,在第一个连接上请求权限就可以了(也更安全)。 有没有任何方法只允许第一次获得许可? 当稍后尝试连接到同一个对等体时,不需要该权限。

如何更改WiFi直接p2p的设备名称?

是否可以通过代码直接更改WiFi的设备名称? 我试图: private WifiP2pDevice wDevice; wDevice.deviceName = "newName"; 但是,显然这是行不通的。 任何想法?!

如何使用Wi-Fi Direct在Android设备之间传输文件?

我需要使用Wi-Fi Direct在Android设备之间传输文件。 请给出任何示例代码。 我search了很多,但我还没有find任何双向沟通的代码。

是否有可能从程序中删除记忆的Wifi Direct组?

我们已经注意到,当一个Wifi Direct组被一个设备记住时,它有时会在设备稍后重新连接时导致问题。 删除记忆的小组似乎解决了这个问题。 如果我们可以在应用程序中这样做,这将是很好的,这是可能的吗? 只需调用WifiP2pManager.removeGroup()不会停止设备记住它们。

如何find通过Android的WiFi直接模式传输的文件的文件名?

您好,我的最终目的是在两台设备之间使用WiFi直接API传输文件。 一旦设备作为一个客户端另一个作为一个服务器在WiFi直接SDK演示。 为此,使用服务器端口和主机地址从客户端创build套接字。 我想传输多个文件。 在接收端,在接受客户端套接字连接的时候,我不得不用客户端发送的文件的文件名来创build这个文件。 但是我不知道服务器端的文件名。 那么如何使用socket连接发送文件名为这个wifi直接传输模式进行多文件传输。 使用服务器端口和主机地址从客户端创build套接字: fileUris = intent.getExtras().getParcelableArrayList(EXTRA_STREAM); String host = intent.getExtras().getString( EXTRAS_GROUP_OWNER_ADDRESS); Socket socket = new Socket(); int port = intent.getExtras().getInt(EXTRAS_GROUP_OWNER_PORT); try { Log.d(WifiDirectActivity.TAG, "Opening client socket – "); socket.bind(null); socket.connect((new InetSocketAddress(host, port)), SOCKET_TIMEOUT); Log.d(WifiDirectActivity.TAG, "Client socket – " + socket.isConnected()); OutputStream stream = socket.getOutputStream(); ContentResolver cr = context.getContentResolver(); InputStream is […]

如何获得点对点WiFi服务发现的工作?

我试图build立一个服务器 – 客户端架构使用两个Android设备与点对点WiFi连接。 我已经明确区分客户端和服务器,所以我试图删除不必要的代码。 使用方向从http://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct.html我有… PeerToPeerService public class PeerToPeerService { private static final Logger LOG = LoggerFactory.getLogger(PeerToPeerService.class); private WifiP2pManager mManager; private WifiP2pManager.Channel mChannel; private final Context mContext; private final WifiP2pDnsSdServiceInfo mService; public PeerToPeerService(Context context, String name) { mContext = context; Map<String, String> record = new HashMap<String, String>(); record.put(Constants.SERVICE_PROPERTY_NAME, name); record.put(Constants.SERVICE_PROPERTY_PORT, "12345"); mService = WifiP2pDnsSdServiceInfo.newInstance( "_test", […]

android到android直播videostream(P2P)

我有两个Android设备(电话)。打电话给P1和P2。 我正在写两个应用程序,一个用于实时streamP1的摄像机video,另一个用于查看video(来自P2)。 我想通过WiFi Direct(无路由器)连接这两个设备。 我已经search了互联网天如何实现从Android手机到另一个Android手机通过WiFi连接,但不使用Wifi直接(P2P)的videostreamfunction。 在这里,我特别想通过WiFi直接做到这一点。 有人能帮我吗 ? 谢谢 :)