调用系统打电话的功能

打电话功能仅仅有iPhone支持,对于其它设备相应button应该禁用。

//直接调用系统电话呼叫功能,挂断电话后不能回到应用程序

[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8004664411"];

//调用系统电话呼叫功能前要给出提示,挂断电话后能回到应用程序

[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://8004664411"];

//同理,也能够调用系统的地图,短信等功能

openURL能帮助你执行Maps,SMS,Browser,Phone甚至其它的应用程序。这是Iphone开发中我常常须要用到的一段代码,它只唯独一行而已。

区分设备类型的方法



//推断是iPhone还是iPad

 用[UIDevice currentDevice].model,这个返回的是一个NSString,你能够做例如以下推断就能知道设备是iPad还是iPhone.

if ([UIDevice currentDevice].model rangeOfString:@"iPad"].location != NSNotFound)

NSLog(@"This is an iPad!");

用UI_USER_INTERFACE_IDIOM()方法,这是系统定义的一条宏。用法也非常easy。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

NSLog(@"This is an iPad!");

推断设备类型和型号

- (NSString*) doDevicePlatform
{
size_t size;
int nR = sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = (char *)malloc(size);
nR = sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
free(machine); if ([platform isEqualToString:@"iPhone1,1"]) { platform = @"iPhone"; } else if ([platform isEqualToString:@"iPhone1,2"]) { platform = @"iPhone 3G"; } else if ([platform isEqualToString:@"iPhone2,1"]) { platform = @"iPhone 3GS"; } else if ([platform isEqualToString:@"iPhone3,1"]||[platform isEqualToString:@"iPhone3,2"]||[platform isEqualToString:@"iPhone3,3"]) { platform = @"iPhone 4"; } else if ([platform isEqualToString:@"iPhone4,1"]) { platform = @"iPhone 4S"; } else if ([platform isEqualToString:@"iPhone5,1"]||[platform isEqualToString:@"iPhone5,2"]) { platform = @"iPhone 5"; }else if ([platform isEqualToString:@"iPhone5,3"]||[platform isEqualToString:@"iPhone5,4"]) { platform = @"iPhone 5C"; }else if ([platform isEqualToString:@"iPhone6,2"]||[platform isEqualToString:@"iPhone6,1"]) { platform = @"iPhone 5S"; }else if ([platform isEqualToString:@"iPod4,1"]) { platform = @"iPod touch 4"; }else if ([platform isEqualToString:@"iPod5,1"]) { platform = @"iPod touch 5"; }else if ([platform isEqualToString:@"iPod3,1"]) { platform = @"iPod touch 3"; }else if ([platform isEqualToString:@"iPod2,1"]) { platform = @"iPod touch 2"; }else if ([platform isEqualToString:@"iPod1,1"]) { platform = @"iPod touch"; } else if ([platform isEqualToString:@"iPad3,2"]||[platform isEqualToString:@"iPad3,1"]) { platform = @"iPad 3"; } else if ([platform isEqualToString:@"iPad2,2"]||[platform isEqualToString:@"iPad2,1"]||[platform isEqualToString:@"iPad2,3"]||[platform isEqualToString:@"iPad2,4"]) { platform = @"iPad 2"; }else if ([platform isEqualToString:@"iPad1,1"]) { platform = @"iPad 1"; }else if ([platform isEqualToString:@"iPad2,5"]||[platform isEqualToString:@"iPad2,6"]||[platform isEqualToString:@"iPad2,7"]) { platform = @"ipad mini"; } else if ([platform isEqualToString:@"iPad3,3"]||[platform isEqualToString:@"iPad3,4"]||[platform isEqualToString:@"iPad3,5"]||[platform isEqualToString:@"iPad3,6"]) { platform = @"ipad 3"; } return platform;
}

当设备在执行程序时永不锁屏

[[UIApplicationsharedApplication]setIdleTimerDisabled:YES];

兴许更新...

IOS总结_IOS经常使用的方法集合、调用系统电话、设备区分、APP内永不锁屏的更多相关文章

  1. [iOS]为什么不要在init初始化方法里调用self.view

    首先.如果你调用self.view的时候,就会调用view的getter方法, 这个时候,view是空的,那么系统就会自动给你创建一个view,然后就会触发ViewDidLoad方法.那么这个时候,如 ...

  2. ios openURL的使用(调用系统电话、浏览器、地图、邮件等)

    Safari Any URL starting with http:// which does not point to maps.google.com or www.youtube.com is s ...

  3. iOS调用系统电话、浏览器、地图、邮件等

    - (IBAction)openMaps { //打开地图 NSString*addressText = @"beijing"; //@"1Infinite Loop, ...

  4. Delphi IOS 蓝牙锁屏后台运行

    Delphi IOS 后台运行 同样的程序,编译成android,锁屏后继续运行正常,蓝牙通讯正常,但在IOS下锁屏后程序的蓝牙就中断通讯了? IOS的机制就是这样,锁屏就关闭了. 音乐播放器是怎么做 ...

  5. Android 禁止屏幕休眠和锁屏的方法

    Introduction 常常我们开 发程序的时候我们不需要系统唤醒系统锁屏功能,比如我们在做xxxNowTV或XXX播放器这样的程序,用户有时候在看电视或视频的时候不希望系统的锁屏 功能启动,既不想 ...

  6. [转载] IOS 获取网络图片的大小 改变 图片色值 灰度什么的方法集合

    IOS 获取网络图片的大小 改变 图片色值 灰度什么的方法集合

  7. iOS——浅谈iOS中三种生成随机数方法

    ios 有如下三种随机数方法:

  8. iOS-浅谈iOS中三种生成随机数方法

    ios 有如下三种随机数方法:

  9. iOS开发 GET、POST请求方法(NSURLSession篇)

    NSURLConnection,在iOS9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: [iOS开发 GET.POST请求方法(NSURLConnectio ...

随机推荐

  1. c#和UDP SOCKET广播

    server:  Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,ProtocolType.Udp); // ...

  2. OSGI学习总结

    最近的一项研究了解了一下OSGI技术,感觉OSGI尽管有一定的学习难度.可是终于掌握和推广之后将是一项对系统开发比較实用的技术.在此和大家分享一下自己的感悟. 1.什么是OSGI OSGI直译为&qu ...

  3. Effective C++ Item 33 避免遮掩继承过来的名称

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie ? 不懂 c++为什么derived classes 内的名称要遮掩 base classe ...

  4. Java实现BASE64编解码器

    Java实现BASE64编解码器 笔者:chszs,转载注明.博客首页:http://blog.csdn.net/chszs BASE64和其它类似的编码算法通经常使用于转换二进制数据为文本数据,其目 ...

  5. “AIR SDK 0.0: AIR SDK location “...\devsdks\AIRSDK\Win” does not exist.”问题解决~

    原文同步至:http://www.waylau.com/air-sdk-0-0-air-sdk-location-does-not-exist-address/ 导入AS3项目时提示“AIR SDK ...

  6. Keepalived 配置和使用

    keepalived主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现.keepalived主要目的在于,其自身启动一个服务,能够实现 ...

  7. IT行业为什么没有进度

    参加工作多年了,来来回回参与了N多项目,大部分都是政府性的招标项目.每个项目都是顺利进行验收,在这些验收过的项目中大部分都或多或少都有一定的时间延期,每个项目都能够和合同或者需求说明书对应的上,但是真 ...

  8. 如何判断一个Http Message的结束——python源码解读

    HTTP/1.1 默认的连接方式是长连接,不能通过简单的TCP连接关闭判断HttpMessage的结束. 以下是几种判断HttpMessage结束的方式: 1.      HTTP协议约定status ...

  9. UVA 10163 Storage Keepers(两次DP)

    UVA 10163 Storage Keepers(两次DP) http://uva.onlinejudge.org/index.php? option=com_onlinejudge&Ite ...

  10. android 他们定义对话框

    创建一个布局文件 my_dialog.xml <?xml version="1.0" encoding="utf-8"?> <Relative ...