标签: cellular-network

了解iOS设备是否具有蜂窝数据功能

我在我的应用程序中切换了"仅在WiFi上下载".但是,这种切换对于iPod touch或WiFi-iPad来说毫无用处.

有没有办法知道设备是否具有代码中的蜂窝数据功能?将来会发挥作用的东西也会很棒(就像带有3G的iPod touch第五代产品一样).

iphone objective-c cellular-network uidevice ios

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

Objective-C确定iOS设备的数据网络类型

我在一个从服务器接收数据的应用程序,问题是当用户连接到cellular data(Not 3GWIFI)时,接收数据需要很长时间.

我已经从这个答案中实现了这个代码,但我不确定它是否有效,有时候它给了我一个准确的类型,有时却没有.

这是我的代码:

- (void)newtworkType {

NSArray *subviews = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"]subviews];
NSNumber *dataNetworkItemView = nil;

for (id subview in subviews) {
    if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
        dataNetworkItemView = subview;
        break;
    }
}

switch ([[dataNetworkItemView valueForKey:@"dataNetworkType"]integerValue]) {
    case 0:
        NSLog(@"No wifi or cellular");
        break;

    case 1:
        NSLog(@"2G");
        break;

    case 2:
        NSLog(@"3G");
        break;

    case 3:
        NSLog(@"4G");
        break;

    case 4:
        NSLog(@"LTE");
        break;

    case 5:
        NSLog(@"Wifi");
        break;


    default:
        break;
}}
Run Code Online (Sandbox Code Playgroud)

这是我能做的最好吗??,我尝试了Apple Reachability的例子,但它可以确定是否 …

iphone objective-c internet-connection cellular-network ios

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

我怎么知道我的iOS应用程序的蜂窝访问是否被禁用?

我有一个iOS应用程序,在应用程序启动(资源更新等)上发出一些小的网络请求.如果用户在iOS设置中关闭应用程序的蜂窝访问权限,则每次启动时都会从iOS获得有关网络使用情况的提示.有没有办法以编程方式知道此应用程序的蜂窝数据已被禁用,以便我可以在启动时禁用请求?

networking cellular-network ios

16
推荐指数
3
解决办法
4750
查看次数

如何在iphone中以编程方式访问每个应用程序的蜂窝数据使用统计信息

我想以编程方式获取每个应用程序的蜂窝数据使用详情.此外,请注意,不应强制在越狱设备上执行.请推荐一些API.

iphone cellular-network ios

14
推荐指数
1
解决办法
5121
查看次数

iPhone - 跟踪手机数据使用情况

有没有办法跟踪iPhone上的手机数据使用情况?有很多应用程序像'Dataman'和'DataUsage'那样做同样的事情

基本上我正在寻找一种编程方式来获取存储在设置 - >常规 - >用法中的信息

任何帮助将不胜感激.

iphone objective-c cellular-network ios core-telephony

13
推荐指数
2
解决办法
9336
查看次数

有没有办法确定iOS中的实际时间和日期(不是设备的时间)

在iOS中,我需要知道实际时间(UTC),而不是设备的时间.换句话说,用户不应该篡改时间或日期.

任何需要网络连接的东西都不好(因此不能选择访问时间服务器).

AFAIK,有两种理论方法可以达到这个目的:

  • 使用GPS卫星信号的时间戳
  • 从运营商处获取当前时间

问题是iOS中的任何API都不会公开此信息.

还有另外一种方法吗?

gps cellular-network ios

13
推荐指数
1
解决办法
1505
查看次数

奇怪的NSURLSessionDownloadTask行为通过蜂窝(不是wifi)

我已启用具有远程通知任务的后台模式,以便在应用程序收到推送通知时在后台下载小文件(100kb).我已经使用配置了下载会话

NSURLSessionConfiguration *backgroundConfiguration = [NSURLSessionConfiguration backgroundSessionConfiguration:sessionIdentifier];
[backgroundConfiguration setAllowsCellularAccess:YES];


self.backgroundSession = [NSURLSession sessionWithConfiguration:backgroundConfiguration
                                                       delegate:self
                                                  delegateQueue:[NSOperationQueue mainQueue]];
Run Code Online (Sandbox Code Playgroud)

并使用激活它

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[hostComponents URL]];

[request setAllowsCellularAccess:YES];


NSMutableData *bodyMutableData = [NSMutableData data];
[bodyMutableData appendData:[params dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[bodyMutableData copy]];


_downloadTask =  [self.backgroundSession downloadTaskWithRequest:request];

[self.downloadTask resume];
Run Code Online (Sandbox Code Playgroud)

现在一切正常,只有当我通过Wifi或通过Cellular连接但iPhone连接到xCode的电缆时,如果我断开iPhone并通过蜂窝接收推送通知代码停 [self.downloadTask resume];在线而不调用URL.

处理这些操作的类是NSURLSessionDataDelegate,NSURLSessionDownloadDelegate,NSURLSessionTaskDelegate,因此实现:

    - (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
Run Code Online (Sandbox Code Playgroud)

我试图插入一个带有 …

background cellular-network ios nsurlsession nsurlsessiondownloadtask

13
推荐指数
2
解决办法
3314
查看次数

发送和接收PHP脚本的短信?

可以在PHP脚本(可以用一个MySQL数据库合作)发送和/或接收短信使用某种形式的服务器端解决方案?

是否需要特殊的服务器端应用程序或特殊硬件?和兼容性?Windows,Linux?

php sms bulksms cellular-network

11
推荐指数
1
解决办法
4696
查看次数

强制第三方应用的Wi-Fi网络

我有一个Android应用程序和一个可通过Wi-Fi服务器.
对于某些操作(例如来自服务器的视频流),我的应用程序通过共享文件的URL来使用第三方应用程序.

从Android L设备开始可以同时连接到Wi-Fi和蜂窝网络,这打破了我的应用程序,因为服务器没有互联网,而且蜂窝网络越来越受到Android的青睐(因为它有互联网),因此URL无法解析.我通过bindProcessToNetwork()将我的应用程序绑定到Wi-Fi来修复此问题.但是,当应用程序与第三方应用程序共享URL时,由于第三方应用程序未绑定到Wi-Fi,因此仍无法解析该URL.

有没有办法让第三方应用程序在打开我的应用程序提供的URL时使用Wi-Fi而不是蜂窝?

在此输入图像描述

android cellular-network android-networking android-wifi android-5.0-lollipop

10
推荐指数
1
解决办法
564
查看次数

Android:如何检测设备是WiFi还是WiFi + Cellular

有没有办法检查用户是否正在使用具有蜂窝网络连接的设备(这主要适用于平板电脑)?也就是说,智能手机配备内置Wi-Fi和Cellular(通常),但有些平板电脑只配备Wi-Fi.我怎么知道运行我的应用程序的设备类型?

我尝试了以下没有结果:

cell = ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE);
wifi = ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_WIFI);

if (cell) tv_1.setText("The tablet has cellular");
   else tv_1.setText("The tablet does not have cellular");
if (wifi) tv_2.setText("The tablet has wifi");
   else tv_2.setText("The tablet does not have wifi");
Run Code Online (Sandbox Code Playgroud)

问题是两个比较总是返回真实,即使它是一个没有蜂窝的平板电脑.

我只需要知道设备是否有SIM卡插槽(带蜂窝电话的型号),或者它是只有WiFi的型号,这可能吗?

提前致谢.

networking android network-programming cellular-network android-wifi

9
推荐指数
2
解决办法
6338
查看次数