标签: 3g

iOS检测3G或WiFi

我不确定这是否可行,但我有这种情况.

我的UIWebView中显示了一个网站,该网站在UISegmentedController中设置了链接.他们的网站可以检测您是在wifi上还是在3g网络上.

现在,分段控制器指向2个不同的页面:1 - iPhone友好登录屏幕2 - 主页,一旦您登录.

现在问题是:

我可以编程我的应用程序来检测它是WIFI还是3G(我知道你可以这样做),但是根据答案转到第1或第2部分

有点像这样:

if (iPhone device is on 3g) {
    Go to Segment 1;
} else {
    Go to Segment 0;
}
Run Code Online (Sandbox Code Playgroud)

objective-c wifi reachability 3g ios

105
推荐指数
6
解决办法
9万
查看次数

向Android添加新的网络承载

我想将新的承载添加到Android(rooted/custom build),成为Wifi和GPRS的同行.

我做了一些Android开发,我知道(在Android 2.2中)有WIFI和GPRS的常量.这是否意味着我需要在所有地方添加常量,以及提供网络堆栈?

我要添加的第一个载体是USBNet(用于带USB主机的Androids).

另一个是3G USB加密狗作为第二个GPRS承载.

我已经开始下载源代码了.

android network-protocols wifi android-source 3g

105
推荐指数
1
解决办法
4271
查看次数

减少通过智能手机广播下载内容的应用对电池的影响

如果我正在构建一个定期从服务器下载数据的智能手机应用程序,并且还间歇性地上传数据(分析,广告等),我该怎么做才能最大限度地减少这些传输对电池寿命的影响?

使用无线电(2G,3G,LTE等)的传输对电池的影响尤为显着.无线电的电源使用情况是否会影响我选择何时,何地以及如何传输数据以最大限度地减少其对电池寿命的影响?

mobile android 3g

70
推荐指数
2
解决办法
3942
查看次数

如何确定网络类型是2G,3G还是4G

我的应用程序上有一个显示网络类型(2G或3G或4G)的指示器,但在获取网络类型后,我如何知道应该在哪个速度类别?

我知道如何检测网络类型:

private TelephonyManager telephonyManager;
telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
CurrentNetworkType = telephonyManager.getNetworkType();
Run Code Online (Sandbox Code Playgroud)

鉴于可能的返回值:

//   public static final int NETWORK_TYPE_1xRTT
//   Since: API Level 4
//   Current network is 1xRTT
//   Constant Value: 7 (0x00000007)
//   
//   public static final int NETWORK_TYPE_CDMA
//   Since: API Level 4
//   Current network is CDMA: Either IS95A or IS95B
//   Constant Value: 4 (0x00000004)
//   
//   public static final int NETWORK_TYPE_EDGE
//   Since: API Level 1
//   Current network is EDGE
//   Constant Value: …
Run Code Online (Sandbox Code Playgroud)

android android-networking 3g 4g

65
推荐指数
5
解决办法
8万
查看次数

如何在上传前检查iOS应用程序大小

我希望能够在提交到应用商店之前检查我的应用的大小.更具体地说,我需要知道它是否会低于神奇的20 MB,以允许细胞下载,因为该应用程序是为节日创建的.

iphone xcode 3g ios

44
推荐指数
4
解决办法
3万
查看次数

通过3G连接的WebSocket

我一直在玩Socket.io,node.js和WebSockets,所有这些都可以通过wifi连接正常工作.

但是,当我通过3G连接(例如我的iPhone)测试启用WebSocket的应用程序时,似乎回到长轮询是唯一可行的解​​决方案.

使用Socket.io连接失败,"WebSocket连接无效或Origin未验证",然后再回到长轮询.

我不知道WebSockets是否可以通过3G工作 - 有没有人成功让他们这样工作?我已经尝试了许多不同的方法,而且一切似乎都失败了,这让我觉得我正在尝试不可能的事情.

iphone websocket node.js 3g socket.io

37
推荐指数
4
解决办法
2万
查看次数

如何在Android上以编程方式关闭3G /数据?

如何在Android上以编程方式关闭3G /数据?

不是Wifi,而是3G /数据.

android 3g

37
推荐指数
2
解决办法
4万
查看次数

评估连接速度的最佳方法

我正在开发一个应用程序,需要通过流媒体播放音乐文件进行现场直播.

在请求歌曲api中,我可以指定带宽(例如:50kbps,100kbps,300,600或1Mbps).

bandwith越大,文件就越有时间获取.由于我不希望用户受到限制,因此我有多种选择来处理它:

  • 检测手机是否正在使用3g,wifi或Edge,并为每个连接速度指定带宽.

  • 让用户决定他将获得的歌曲的质量:像youtube(但用户不会是那些对计算有更多了解的人:软件越容易,它就越适合)

  • 有办法正确评估连接速度:就像获取文件一样,测量它所花费的时间并设置带宽.

我知道如果用户松开wifi,或者在街上使用3g移动,连接速度可能会有很大变化.而事实是,当歌曲播放时我无法改变带宽.

也许你有关于你想分享的经验?

谢谢!

networking android 3g android-wifi

34
推荐指数
2
解决办法
4万
查看次数

在3G上没有经过UDP打孔

我正试图在软件中实现一个打孔功能.问题是,我正在使用已经建立的TCP服务器与用户进行通信.

这是我到目前为止所拥有的:

  • "A"向UDP服务器"US"发送消息(在端口9333上)
  • "US"将已连接的端口发送回"A"(端口31000 - localport 31005)
  • "A"向TCP服务器"TS"发送消息,说他想要连接到B(并给端口31000)
  • "TS"向"B"发送消息,给他"A"的端口(31000)和ip
  • "B"向"US"发送消息(在端口9333上)
  • "US"向"B"发送消息,告诉他他的端口45000(localport 45005)
  • "B"向"TS"发送消息给出是udp端口(45000)
  • "TS"向"A"发送消息,给出B的udp端口(45000)和ip
  • "A"开始在端口45000上向B的ip发送udp消息,并在localport 31005上收听
  • "B"开始向端口31000上的A的IP发送udp消息,并在localport 45005上收听

当然,例如端口31000,31005,45000和45005,每个端口改变的新连接,只有9333是静态的.

我知道有很多来回,比实际情况还要多.事实上,我必然会使用TCP服务器与两个用户进行通信,udp服务器只是将用户的端口返回给自己,因此它可以将其发送回TCP服务器.

但是,任何人都不会收到用户之间的消息......任何人都会知道为什么?


编辑:

我用http://nattest.net.in.tum.de/test.php测试了我的路由器,并且udp打孔工作正常,所以问题不是来自我的路由器,而是来自我的协议......

当用户在同一个NAT后面时,一切正常,当然它使用了private ip,但这意味着代码也在工作,所以每一个都会导致协议问题......


编辑2:

实际上,我做了一半的工作(问题实际上来自我的代码,而不是协议......我已经连接了2个用户,一个用3G连接iPhone,一个连接在Wifi上我的NAT.

有趣的(不是那么多)事情是,只有一个套接字能够在两个用户之间接收和发送数据.(由iphone发起的套接字)根据协议,我应该有2个连接良好的套接字,我错了吗?

所以我设法在我的NAT中打了一个洞,但实际上并没有在蜂窝NAT中.

当然,我立即测试了2台连接在3G上的iphone.没有人得到另一个人的信息.

我错过了有关手机NAT的内容吗?

PS:很抱歉更新我的问题,但由于我没有得到答案,我试图自己找...

PS 2:因为我设法在我的NAT中打了一个洞,我改变了标题,加上"在3G上"


编辑3:我再次运行http://nattest.net.in.tum.de/test.php测试,我的电脑通过我的iphone的3G连接连接到互联网.

这是结果: UDP HOLE PUNCHING RESULT

显然所有的udp打孔测试都是在第9次测试中成功的.

似乎还有更多:

UDP绑定测试(?):端点独立绑定,端口预测很容易

因此,通过3G连接连接2个对等设备应该不会有任何问题(远远不及"家庭"NAT背后)......我是对的吗?


编辑4:

为了确定,我现在向两个不同的UDP服务器发送消息,以检查3G上的端口和本地端口是否相同.

长话短说,端口(本地和公共)在两台服务器上连接时都是一样的.所以在EDIT 2上完成的测试是正确的,udp是端点独立的,所以我不应该在进行打孔时遇到任何问题......(至少我的ISP)

udp 3g hole-punching 3g-network

33
推荐指数
2
解决办法
1万
查看次数

网站在3G下的iPad/iPhone上展示JavaScript错误,但不在WiFi下

在3G下连接到iPad上的http://www.manage-us.com [曾经]导致JavaScript错误,如果启用了开发人员控制台,则可以看到该错误.如果在WiFi连接下使用同一台iPad访问同一页面,则不会显示错误.[错误现在已经消失,因为我应用了下面的修复程序!].

为什么是这样?

我尝试在Mac上的Safari和Mac上的iPad模拟器上模拟低带宽(使用dummynet).这不会重现问题.

我目前怀疑这是我的英国移动运营商(O2)引入的问题,已知通过代理缓存(例如降级图像文件)修改某些内容.如果您通过其他移动运营商通过3G在iPad或iPhone上进行连接时可以确认您没有遇到此问题.

iphone proxy wifi ipad 3g

24
推荐指数
1
解决办法
1万
查看次数