我正在Android上创建一个移动应用程序,它需要设备之间进行非常远距离的通信。当电话通过WiFi连接到互联网时,我可以方便地使用IP地址。但如果它是通过3G连接的,我除了电话号码什么都没有,我可以通过短信进行交流,但我想使用更好的东西,比如3G连接。
因此问题来了,如果WiFi不可用,安卓设备如何通过3G网络直接连接到另一台设备?
注意:我已经想到了一个服务器,它充当代理,将电话号码映射到IP地址,但如果我可以在3G上使用电话号码作为ID来建立一个直接通道。
提前感谢任何能提供任何信息的人。
发布于 2012-06-19 15:35:33
通过谷歌搜索3G网络的工作原理,我发现出站连接和入站连接都涉及到NATing (NAT穿越)。当通过WiFi连接时,这不是必需的。因此,在android+NAT+3G+sockets上搜索一下,我就得到了这个问题的答案。
Android Client, Pc Server Socket d'ont work over 3g
https://stackoverflow.com/questions/917385/nat-traversal-with-java
发布于 2012-06-16 16:41:34
这里:http://developer.android.com/reference/android/net/ConnectivityManager.html
和:Google Android - how to figure out if 3g and 2g is turned on
和:How to use 3G Connection in Android Application instead of Wi-fi?
和:ConnectivityManager getActiveNetworkInfo() is always null even with data traffic active
和:http://www.chrisdadswell.co.uk/android-coding-example-checking-for-the-presence-of-an-internet-connection-on-an-android-device/
和:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/net/ConnectivityManager.java#376
发布于 2017-04-29 00:05:33
我使用谷歌游戏服务来实现这一点,iOS /安卓跨平台也是如此。
您可以根据需要使用实时API或基于turn的API。https://developers.google.com/games/services/common/concepts/realtimeMultiplayer
https://stackoverflow.com/questions/11061547
复制相似问题