调用系统打电话的功能

打电话功能仅仅有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. Android中TextView中内容不换行的解决方法

    问题 如果新建的Android项目采用的Android 3.0以上的SDK,同时采用了 <style name="AppTheme" parent="@androi ...

  2. 王立平--Program Files (x86)

    window7根据系统.program files(x86) 它是应用程序目录,在64下位系统.为了更好的相容性32位程序,在一些安装32位程序(请注意,有些节目自己是32位),将默认被安装progr ...

  3. Kinect的学习笔记发展(一)Kinect引进和应用

    Kinect的学习笔记发展(一)Kinect引进和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...

  4. uptime

    linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行 ...

  5. htc one x刷机记录

    这几天有些空余时间都用来刷htc one x,来说说刷机的艰难史吧. 首先是利用百度云rom刷机,本来一直用小米系统,突然发现百度云也能够搞个,所以心血来潮要刷个百度云,先利用软件解锁,哪知道没细致看 ...

  6. "UBUNTU: SAUCE: apparmor: 3.0 backport of apparmor3"

    下面提供的commit是为了让nexus 4g的内核支持ubunt touch的一些功能. 链接地址如下: "UBUNTU: SAUCE: apparmor: 3.0 backport of ...

  7. c++爱问的面试问题

    1.static_cast,dynamic_cast,reinterpret_cast,const_cast四种转换. 2.const行为 3.malloc/free, new/delete差额 4. ...

  8. define a class for a linked list and write a method to delete the nth node.

    1.问题 define a class for a linked list and write a method to delete the nth node. 2.算法 template <t ...

  9. Windows8.1和Ubuntu14.04双系统卸载Ubuntu參考教程[图]

    我之前编写并公布了<Windows8.1安装Ubuntu14.04双系统參考教程及双硬盘注意事项>这篇教程,而本文提供的卸载Ubuntu方法适用于这篇教程,其它方法安装的Ubuntu可适当 ...

  10. MVC Code First (代码优先)

    首先配置web.config <connectionStrings> <add name="BookDbContext" connectionString=&qu ...