在Android上用Wi-Fi创建P2P连接
因此,我正在尝试在Android上创建P2P连接工作. 而且我被困在以下一部分.下面的代码是API上提供的,对我来说没有意义.我觉得Mmanager必须有一种类型,并且没有给出类型. 我如何完成此工作? 链接到API: http://developer..android.com/training.and.android.com/training/training/connect-devices - 无/wifi-direct.html @Override Channel mChannel; public void onCreate(Bundle savedInstanceState) { .... mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); mChannel = mManager.initialize(this, getMainLooper(), nu
2 2024-02-19
编程技术问答社区
用Wi-Fi创建P2P连接: 信息传递问题
我正在使用WiFi P2P连接,以使用以下教程在两个Android设备之间发送和接收消息 它正在努力识别附近的设备并与附近的peer连接.但是在服务器和客户端之间的连接成功之后,客户端peer在该服务器对等式无法将消息发送给客户端对等后,成功地发送给服务器对等.它给出以下例外 04-14 12:31:27.740: E/test(6037): SERVER to CLIENT message sending exception: bind failed: EADDRINUSE (Address already in use) 请帮助查找我的代码有什么问题 这是我的MainActivity.java import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.
0 2024-02-19
编程技术问答社区
将在同一本地网络上连接的设备之间进行通信的应用程序,即Wi-Fi
因此,只有当它连接到同一本地网络时,就需要一个应用程序在设备之间进行通信的要求. 例如:设备A和设备B已连接到Wi-Fi网络Z.该应用程序将允许两个设备在彼此之间进行通信(发送消息/视频) 我一直在研究过去几天,但无法清楚我到目前为止发现的东西. (我对NSDManager,Wifip2PManager等感到困惑. 我只需要在遵循哪种概念/方法之间进行确认.请帮助. 解决方案 根据我的个人经验,Wifip2pmanager应该做您想做的事.我已经用它来连接通过同一WiFi网络连接两个设备.它还允许您的设备查看网络上的所有其他设备,并使您可以连接到它们.连接到设备后,您可以通过WiFi网络发送消息. 它还说明了如何查看网络上的设备,如何与它们连接以及如何传输数据.这应该适合您要求的要求. 您可以使用NSD,但是根据文档主要用于使您的应用程序访问本地网络上其他设备提供的服务.它可以通过请求服务来与其他设备进行文件共享. 搜索后,我得出结论, wifi Dir
0 2024-02-19
编程技术问答社区
WiFi Direct状态
是否可以专门检查WiFi Direct是否打开还是关闭? 我编写了一个代码,该代码只能更新WiFi状态,无论它是否连接,无论是访问点还是WiFi Direct ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mWifi.isConnected()) { } if (!mWifi.isConnected()) { } 我想专
2 2024-02-19
编程技术问答社区
是否可以连接两个或更多的WiFi Direct组?
我目前正在使用WiFi-Direct(WIFIP2P)进行我正在从事的项目,并想知道是否可以在组之间创建桥梁,从而将它们连接在一起? 基于白皮书由Wifi 联盟,应该有可能(尽管" P2P规范没有描述此功能的机制 - 实施是特定于供应商的").我已经浏览了互联网并找到了一些答案( this , this 等),但我觉得没有一个特别结论.看着Andoid的API也没有多大帮助. 我要创建的情况是将一个客户端从一个组连接到另一组.给定4个设备(a,b,c,d),其中A和B在一个小组中,有一个组所有者,C和D在由D: 管理的组中 c连接到A.因此,有2组与C充当桥梁. 这是可能的吗? /FILES/wp_wi-fi_direct_201025_industry.pdf client/peer wi-fi with wi-fi with wi-fi with wi-fi直接在android上 解决方案 请参阅此 link .根据此链接,当C连接到A时,它不再
2 2024-02-19
编程技术问答社区
如何通过Wi-Fi点对点找到安装有相同应用程序的设备?
我在Android开发中是很新的.我有一个应用程序,该应用程序试图通过Wi-Fi Peer 2 Peer连接到运行Android的其他设备.我要做的是只看到安装了相同应用的设备,而不是看到所有可用的对等式.预先感谢. 解决方案 是的,您可以做到这一点! :) 尝试使用 wifi p2P用于服务发现.实际上,该链接是一种培训,它准确地教您想要的东西. 因此,您基本上想做的是创建一个WifiP2pDnsSdServiceInfo对象,其中包含您要宣传的信息或应用程序广播的信息,然后,addLocalService addLocalService广告/广播此对象. 您还需要发现附近的服务,这些服务正在广播一些信息.要获取服务信息,请创建WifiP2pManager.DnsSdServiceResponseListener.这将接收实际的描述和连接信息.在这里,您可以阅读信息,如果是您的应用程序广播的信息,则可以 hooray 您找到了附近的设备,该设备具有您的特定应用
0 2024-02-10
编程技术问答社区
安卓WIFI直接直播摄像头视频流
我已经在两个Android设备之间建立了WiFi Direct P2P连接,并以720x480分辨率将实时相机供稿从设备A到设备B.它可以正常工作,但是即使在近距离(. 我的问题是:是否有更有效的方法可以做到这一点?我不需要惊人的帧速率(Mabye 20 ...?).它必须更加一致. private PreviewCallback previewCb_ = new PreviewCallback() { public void onPreviewFrame(byte[] data, Camera c) { frame = data; imageFormat = c.getParameters().getPreviewFormat(); if (!socket.isClosed()) { mHandler.post(new Runnable() {
4 2024-02-10
编程技术问答社区
Unity3d WIfi direct (P2P) android支持
我试图弄清楚如何制作游戏,该游戏只能直接使用wifi直接在本地工作,而无需任何Internet访问. 这个概念非常简单.它将是某种演示,所以我需要拥有一个主/主机设备,其他连接设备将奴隶/客户.当我按下主/主机上的按钮 在所有奴隶/客户端设备中只更改一个值(字符串或int). 同时支持20-40个连接的设备. 我尝试过: unet-仅在使用本地IP连接到某些路由器时才起作用,但不支持WiFi Direct Communication. 我试图找到一些插件,但我无法决定选择哪种或获得有关WiFi Direct支持的信息. 我试图找到其他解决方案,例如蓝牙,但同时仅支持4-13个连接的设备,但我需要同时连接20-40个设备. 我发现的插件列表: forge Networking- 1.1我不知道这是否支持我需要的功能. wifidirect插件 - .com/en/#!/content/50112 2.1.该插件有错误,没有支持. 我想问什
6 2024-02-09
编程技术问答社区
在安卓系统中使用NAT打通来发送P2P信息
我尝试使用 kryonet (使用套接字通信)和我打算通过存储客户的公共地址来使用Nat Punch-trough. 使用以下代码: public class MainActivity extends Activity implements View.OnClickListener { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = ((Button) findViewById(R.id.btnTest)); button.setOnClickListener(this);
2 2024-02-06
编程技术问答社区
3G中的NAT是如何工作的
1)在Android Mobile中,当我连接到3G时,我从Google检查了一个1.39.1.85的公共地址,而我的移动设备的本地IP是10.145.15.50,我从编程中获得了. 2)如何分配这两个地址?由BTS? nat? 3)两个移动节点可以具有相同的公共IP地址吗? 4)我知道NAT和防火墙. 我尝试了UDP孔打孔: a)使用移动A,我将UDP数据包发送到UDP服务器Java程序,该程序捕获其公共IP和端口. b)使用移动B,我将UDP数据包发送到UDP服务器Java程序,该程序捕获其公共IP和端口. c)每次我在服务器中收到一个数据包时,我都会使用UDP数据包回复,并且我能够在移动设备中收到答复. d)但是,当我尝试交换每个手机的IP和端口并发送数据时.我无法在任何一个手机上接收任何数据. 这里的确切问题是什么? 请尽可能地解释这一点. 解决方案 在4中),您说您知道NAT和Firewall的.那么您还应该知道IPv4短缺. 因此,在您的提供商
0 2024-02-06
编程技术问答社区
为什么我在使用WifiP2pManager时总是出现BUSY?
我正在尝试使用Wi-Fi Direct连接两个Android-devices. 在我的htc-phone(一sv)上,它似乎有效,但是使用我的第二个设备lg optimus 4xhd不起作用. 在我的onresume()函数中,我启动以下线程: new Thread(){ private int count=0; public void run() { mManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() { @Override public void onSuccess() { Log.d(tag,"SUCCESS - started discovering peers");
10 2024-02-06
编程技术问答社区
两部智能手机之间不使用蜂窝电话塔进行通信--点对点
可以说,我有2台移动电话,彼此相距50米,我想发送一小包数据从Mobile-A到Mobile-B,而无需与Cellular Tower使用任何通信. 为了使其更简单,我想构建一个应用程序,该应用在同一半径(在同一区域)中实现了2个手机的对等连接. 如今,使用智能手机技术可行? (例如) 解决方案 否.移动网络在根据国家/地区范围内的无线电服务有所不同,但我知道没有允许这种临时通信. 50米对于WiFi来说,尤其是在一双不理想的天线的手机中.蓝牙也将是正确的. 其他解决方案 蓝牙是您最好的选择,但即使在空旷的场中,50米也相距太远.
0 2024-02-06
编程技术问答社区
在安卓系统上使用Wi-Fi Direct的客户/同伴通信
我有三个Android设备:A,B和C.它们是通过Wi-Fi Direct连接的(假设B是小组所有者).我只有两个问题: B可以将作为客户端连接到另一个Wi-Fi直接组吗? A或C可以作为客户端连接到另一个Wi-Fi Direct组吗? 解决方案 我已经在2天前测试了您的问题. b仅当D不是某些组的所有者时才可以连接到设备D,因此D将以客户为b的组加入B组. 当A/C连接到B作为客户端时,当他们尝试将连接请求发送给某些设备D时,请求将转发给组所有者B以接受连接并添加D到小组. (当D处于B和A/C范围时,对此方案进行了测试. 当D不在B的范围内,但在A/C范围内,A/C的请求将被取消,并且A/C与B的连接将断开连接. 这是我们试图了解Wi-Fi Direct的行为时面临的情况. 希望我能帮助您. 如果有人测试并知道其他事情,我将很感激. 其他解决方案 我在白皮书我从WiFi Alliance下载了: 并发连接和多个组. 可以在同
2 2024-02-06
编程技术问答社区
安卓平台上的客户/同伴与wifi-direct的通信
我有三个Android设备:A,B和C.它们是通过WiFi-Direct连接的(假设B是组所有者). 我只有两个问题: 1. a想要向C发送消息,该消息是否必须传递组所有者B才能达到C? 2.如果小组所有者B不小心断开了连接,则仍然可以将消息发送到C? 谢谢! 解决方案 在WiFi直接通信中 P2P组和充当客户的设备被称为P2P客户.因此,所有沟通都必须通过小组所有者频道. ,一旦小组所有者断开连接,显然路由渠道被杀死,因此被杀死. 客户必须重新建立连接,客户之一成为小组所有者.
6 2024-02-03
编程技术问答社区
我们可以直接从一个安卓设备向另一个安卓设备发送数据(p2p),而不需要中间的服务器?
我需要将数据从一个Android设备通过服务器彼此找到彼此后,将数据直接发送到另一个Android设备(P2P). 我读了一些无法做到的东西,但是我不明白为什么可以访问Internet的设备(它有一个IP正确吗?)不能创建对等连接的同行? 如果不可能,为什么?如果这是怎么回事? P.S:我知道没有互联网,我们将无法实现这一目标,这个问题假设两个目标都具有互联网连接,bprs/3g/4g或WiFi Internet连接! 注意:我希望在WiFi和非Wifi Internet上都有可能! 解决方案 我过去曾使用 pubnub 为此.在构建 mote.io 时,我使用了类似的技术. 我一直以为手机无法轻松到同行连接是愚蠢的,但是您可以与中间的第三方进行这种交流.使用PubNub这样的托管服务的优点是它可以在WiFi和单元网络上工作,并且能够处理较差或掉落的连接. Java SDK 您可以使用 pubnub android android sdk 在PubN
2 2024-02-03
编程技术问答社区
如何在两个设备(安卓,苹果)之间传输 "数据"?
如何在两个设备之间传输数据?我想在不同平台(Android,iPhone)之间传输数据(主要是图像文件).是否可以使用P2P,或者我应该使用客户端服务器? 任何帮助将不胜感激. 解决方案 虽然在某些情况下可以使用P2P,但您将与客户服务器架构达到最广泛的兼容性,而必须以部署,供电,连接和维护服务器为代价. 您将能够同时使用WiFi访问点和移动(3G等)网络 您在系统中有一个现成的位置,可以测量(或限制)用法和/或插入广告 您不必担心防火墙会阻止到设备的入站连接(在WiFi上常见,几乎总是在移动设备上) 设备的相对位置无关紧要 您不仅可以与智能手机和平板电脑进行互操作,还可以与传统的PC和笔记本电脑 其他解决方案 Have you looked at Qualcomm's AllJoyn library?它仅在蓝牙或wifi上工作. 以下代码从此合并套接字编程中应用 public class ServerActivity extends Ac
8 2024-02-02
编程技术问答社区
适用于安卓的非阻塞式IO
我目前正在尝试评估是否可以实现一个项目.我看到的一个主要问题是,由于它是P2P客户端,因此我们必须在运行时保持相当多的连接.现在,连接不会传输大量数据,它更多是消息系统,因此,如果我们不时阅读了一个64个字节的单个消息,则为每个连接提供一个线程会创建一个无用的开销. . 所以我想知道是否支持非阻止io,例如select()或poll()linux. 有任何建议? 解决方案 查看Java.nio插座,选择器和频道.一些链接: android:无封闭io www.developer.com/java/article.php/3837316/non-blocking-io-made-possible-in-java.htm 或者,也许我没有正确阅读您的问题. 其他解决方案 当然.一旦您的应用程序声明使用Internet许可,您就可以使用NDK在C中使用c中的非root用户使用所有普通的Linux网络,而来自Java的任何人(如果没有人也没有击败您)不愿
2 2024-01-31
编程技术问答社区
安卓。NAT穿透?
在我看来,较新的Android设备在NAT后面运行,该设备是本地地址是内部运营商或LAN地址,公共地址是路由器或运营商分配的外部地址. 尽管如此,较新的手机不会使用网络接口返回与访问IP检测服务时的相同地址. 因此,通过直接的P2P Socketchannels固有失败. 为Android平台设计的这个问题是否有任何常见的解决方法?谁能澄清什么是导致此类似NAT的安全问题? 与Java nat Traversal 教程的任何链接或示例(不是论文或论文)也将被赞赏是有用的(就像我'一样m不太确定如何在Java中实施). 我当然还会接受任何人提供的其他解决方案! 解决方案 几乎您将触摸的几乎所有手机或PC都不会有静态的公共IP地址,因此需要NAT遍历.这不是因为设备;运营商或ISP将路由器放置在您的设备和公共互联网之间.取决于您的应用程序,通常可以使用Nat-Traversal库,例如 ice4j 或特技. 其他解决方案 我在自己的项目中这样做,
0 2024-01-29
编程技术问答社区
安卓P2P(直接连接)通过互联网(在NAT后面)。
我正在启动一个小项目,基本上是经典战舰游戏的多人游戏(如两个以上的玩家). 我试图解决的一个问题是在我研究编码之前,是多个玩家之间交流的问题.当前的可能性是将中央HTTP服务器用作通信中央集线器(与Android C2DM API相结合,以允许将HTTP服务器的通信推送到设备).这似乎是一个不错的解决方案,因为从理论上讲,只要您可以访问互联网,无论您是否落后于NAT. . 但是,所提出的解决方案的缺点是现有的一个单点故障/额外负载(网络服务器).所以我想尝试其他选择.我想到使用客户端之间的插座建立直接连接(Web服务器仅用用作初始会议点),但是,只有所有设备都在同一网络中,这才能很好地工作.考虑到今天,我们几乎总是落后路由器的NAT,该如何直接沟通?我一直在阅读有关孔冲孔的信息,但是找不到任何有据可查的好库(包含好的使用示例),并且可以肯定地在Android上使用.同样,大多数(如果不是全部)孔冲孔技术(刻薄,冰等...)仅与UDP一起使用,这对于可能会丢失一些消息的音频/
0 2024-01-28
编程技术问答社区
点对点的通信选择
任何人都可以确认Android框架内的当前对等通信的方法是什么?我需要传输JSON字符串,目前我正在使用可以正常工作的SMS,但问题在于数据也最终以许多短信.我已经阅读了Reto Meier的第一版专业Android应用程序开发,他说由于安全问题而未实施数据传输选项. 这是否完全改变了,您将如何处理数据的点传输? 解决方案 您是否查看了 Qualcomm的Alljoyn Library ?它旨在通过蓝牙或wifi工作,因此可能合适,尽管如果您连接到3G或更广泛的范围网络,则无法正常工作. 给定两个不在同一网络上的远程设备之间网络的差异和可靠性,我会质疑点对点是否是最佳解决方案,并会建议您考虑在两者之间使用应用程序服务器,因此您然后可以使用云到设备消息传递 [deverecated](也许与Google App Engine同时).即,要发送一条消息,发件人将其传递给服务器,然后服务器将其传递给收件人. 从理论上讲,网络上的所有设备都有一个独特的IP地址,可以互相
0 2024-01-28
编程技术问答社区