ios10怎么显示ios11来电显示归属地归属地

IOS获取来电去电系统通知达到来电归属地效果(一)
这里的实现原理是获取到来电通知,然后根据本地通话的电话号码,把对应电话的联系人.
情况一 来电号码未在通讯录联系人中, 这时候要先在通讯录添加一个临时的联系人(就是新建一个联系人,并保存对应的RecordID)
情况二 已在通讯录的联系人
然后 把对应本次通话的电话标签修改成归属地字符
好了 ,先看看怎么获取系统电话通知
//创建电话对象
@import CoreT
// private API
typedef NS_ENUM(short, CTCallStatus) {
kCTCallStatusConnected = 1, //已接通
kCTCallStatusCallOut = 3, //拨出去
kCTCallStatusCallIn = 4, //打进来
kCTCallStatusHungUp = 5 //挂断
@interface WCCall : NSObject
@property (nonatomic,assign) CTCallStatus callS
@property (nonatomic,copy) NSString *phoneN
@property (nonatomic,retain) CTCall *internalC
#import WCCall.h
@implementation WCCall
//监听电话通知
#import WCCall.h
@interface WCCallCenter : NSObject
// 监听来电事件
@property (nonatomic,strong) void (^callEventHandler)(WCCall *call);
// 挂断电话
- (void)disconnectCall:(WCCall *)
#import WCCallCenter.h
#import WCUtil.h
// encrypted string's
#define ENCSTR_kCTCallStatusChangeNotification [@n0AHD2SfoSA0LKE1p0AbLJ5aMH5iqTyznJAuqTyiot== wcDecryptString]
#define ENCSTR_kCTCall [@n0AHD2SfoN== wcDecryptString]
#define ENCSTR_kCTCallStatus [@n0AHD2SfoSA0LKE1pj== wcDecryptString]
#define ENCSTR_CTTelephonyCenterGetDefault [@D1EHMJkypTuioayQMJ50MKWUMKERMJMuqJk0 wcDecryptString]
#define ENCSTR_CTTelephonyCenterAddObserver [@D1EHMJkypTuioayQMJ50MKWOMTECLaAypaMypt== wcDecryptString]
#define ENCSTR_CTTelephonyCenterRemoveObserver [@D1EHMJkypTuioayQMJ50MKWFMJ1iqzICLaAypaMypt== wcDecryptString]
#define ENCSTR_CTCallCopyAddress [@D1EQLJkfD29jrHSxMUWyp3Z= wcDecryptString]
#define ENCSTR_CTCallDisconnect [@D1EQLJkfETymL29hozIwqN== wcDecryptString]
//这里需要对字符串 NSString 进行拓展方法
引用 这个框架
- (NSString *)wcRot13
const char *source = [selfcStringUsingEncoding:NSASCIIStringEncoding];
char *dest = (char *)malloc((self.length +1) * sizeof(char));
if (!dest) {
NSUInteger i = 0;
for ( ; i & self. i++) {
char c = source[i];
if (c &= 'A' && c &='Z') {
c = (c - 'A' + 13) % 26 + 'A';
else if (c &='a' && c &= 'z') {
c = (c - 'a' + 13) % 26 + 'a';
dest[i] = '';
NSString *result = [[NSStringalloc] initWithCString:destencoding:NSASCIIStringEncoding];
free(dest);
- (NSString *)wcDecryptString
NSString *rot13 = [selfwcRot13];
if ([NSDatainstancesRespondToSelector:@selector(initWithBase64EncodedString:options:)]) {
data = [[NSDataalloc] initWithBase64EncodedString:rot13options:0]; // iOS 7+
data = [[NSData alloc] initWithBase64Encoding:rot13]; // pre iOS7
return [[NSStringalloc] initWithData:dataencoding:NSUTF8StringEncoding];
// private API
//extern NSString *CTCallCopyAddress(void*, CTCall *);
typedef NSString *(*PF_CTCallCopyAddress)(void*,CTCall *);
//extern void CTCallDisconnect(CTCall *);
typedef void (*PF_CTCallDisconnect)(CTCall *);
//extern CFNotificationCenterRef CTTelephonyCenterGetDefault();
typedef CFNotificationCenterRef (*PF_CTTelephonyCenterGetDefault)();
typedef void (*PF_CTTelephonyCenterAddObserver)(CFNotificationCenterRef center,
constvoid *observer,
CFNotificationCallback callBack,
CFStringRef name,
constvoid *object,
CFNotificationSuspensionBehavior suspensionBehavior);
typedef void (*PF_CTTelephonyCenterRemoveObserver)(CFNotificationCenterRef center,
constvoid *observer,
CFStringRef name,
constvoid *object);
@interface WCCallCenter ()
- (void)handleCall:(CTCall *)call withStatus:(CTCallStatus)
@implementation WCCallCenter
- (id)init
self = [superinit];
if (self) {
[selfregisterCallHandler];
- (void)dealloc
[selfderegisterCallHandler];
- (void)registerCallHandler
staticPF_CTTelephonyCenterAddObserver AddO
staticPF_CTTelephonyCenterGetDefault GetC
static dispatch_once_t onceT
dispatch_once(&onceToken, ^{
AddObserver = [WCDLloadSymbol:ENCSTR_CTTelephonyCenterAddObserver];
GetCenter = [WCDLloadSymbol:ENCSTR_CTTelephonyCenterGetDefault];
AddObserver(GetCenter(),
(__bridge void *)self,
&callHandler,
(__bridgeCFStringRef)(ENCSTR_kCTCallStatusChangeNotification),
CFNotificationSuspensionBehaviorHold);
- (void)deregisterCallHandler
staticPF_CTTelephonyCenterRemoveObserver RemoveO
staticPF_CTTelephonyCenterGetDefault GetC
static dispatch_once_t onceT
dispatch_once(&onceToken, ^{
RemoveObserver = [WCDLloadSymbol:ENCSTR_CTTelephonyCenterRemoveObserver];
GetCenter = [WCDLloadSymbol:ENCSTR_CTTelephonyCenterGetDefault];
RemoveObserver(GetCenter(),
(__bridge void *)self,
(__bridgeCFStringRef)(ENCSTR_kCTCallStatusChangeNotification),
- (void)handleCall:(CTCall *)call withStatus:(CTCallStatus)status
staticPF_CTCallCopyAddress CopyA
static dispatch_once_t onceT
dispatch_once(&onceToken, ^{
CopyAddress = [WCDL loadSymbol:ENCSTR_CTCallCopyAddress];
if (!self.callEventHandler || !call) {
WCCall *wcCall = [[WCCallalloc] init];
wcCall.phoneNumber = CopyAddress(NULL, call);
wcCall.phoneNumber = wcCall.phoneN
wcCall.callStatus =
wcCall.internalCall =
self.callEventHandler(wcCall);
static void callHandler(CFNotificationCenterRef center,
void *observer,
CFStringRef name,
const void *object,
CFDictionaryRef userInfo)
if (!observer) {
NSDictionary *info = (__bridgeNSDictionary *)(userInfo);
CTCall *call = (CTCall *)info[ENCSTR_kCTCall];
CTCallStatus status = (CTCallStatus)[info[ENCSTR_kCTCallStatus]shortValue];
if ([[calldescription] rangeOfString:@status = 196608].location==NSNotFound) {
//这里之后就是你对归属地信息的操作了
WCCallCenter *wcCenter = (__bridgeWCCallCenter*)
[wcCenter handleCall:call withStatus:status];
- (void)disconnectCall:(WCCall *)call
staticPF_CTCallDisconnect D
static dispatch_once_t onceT
dispatch_once(&onceToken, ^{
Disconnect = [WCDL loadSymbol:ENCSTR_CTCallDisconnect];
CTCall *ctCall = call.internalC
if (!ctCall) {
Disconnect(ctCall);
//处理本地通话的一些操作
@interface WCCallInspector : NSObject
+ (instancetype)sharedI
- (void)startI//启动 O(&_&)O~~
#import WCCallInspector.h
#import WCCallCenter.h
@interface WCCallInspector ()
@property (nonatomic,strong) WCCallCenter *callC
@implementation WCCallInspector
+ (instancetype)sharedInspector
static WCCallInspector *
static dispatch_once_t onceT
dispatch_once(&onceToken, ^{
instance = [[WCCallInspector alloc] init];
- (id)init
self = [superinit];
if (self) {
#pragma mark - Call Inspection
- (void)startInspect
if (self.callCenter) {
self.callCenter = [[WCCallCenteralloc] init];
__weak WCCallInspector *weakSelf =
self.callCenter.callEventHandler = ^(WCCall *call) {
[weakSelf handleCallEvent:call];
#pragma mark 呼出,呼入,接通,挂断
- (void)handleCallEvent:(WCCall *)call{
//这里 想怎么操作 根据自己情况而定啊......
//可以打印call的属性看看结果
// kCTCallStatusConnected = 1, //已接通
// kCTCallStatusCallOut = 3, //拨出去
// kCTCallStatusCallIn = 4, //打进来
// kCTCallStatusHungUp = 5 //挂断
//startInspect//这个方法需要在程序启动时候注册
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
* Your Code
[[WCCallInspectorsharedInspector] startInspect];
return YES;
//引用这个类库 #import
程序启动的情况下 来电/去电/接通/挂断 都可以获到了, 文章到此结束了, 敬请期待 对联系人添加归属地, 修改联系人操作博客.....IOS获取来电去电系统通知达到来电归属地效果(一)
转自:http://www.tuicool.com/articles/niQvMr
这里的实现原理是获取到来电系统通知,然后根据本地通话的电话号码,把对应电话的联系人.
来电号码未在通讯录联系人中, 这时候要先在通讯录添加一个临时的联系人(就是新建一个联系人,并保存对应的 RecordID )
已在通讯录的联系人
然后 把对应本次通话的电话标签修改成归属地字符
好了 ,先看看怎么获取系统电话通知
//创建电话对象
#import &Foundation/Foundation.h&
@import CoreT
// private API
typedef NS_ENUM ( short , CTCallStatus) {
kCTCallStatusConnected = 1 , // 已接通
kCTCallStatusCallOut = 3 , // 拨出去
kCTCallStatusCallIn = 4 , // 打进来
kCTCallStatusHungUp = 5 // 挂断
@interface WCCall : NSObject
@property ( nonatomic , assign ) CTCallStatus callS
@property ( nonatomic , copy ) NSString *phoneN
@property ( nonatomic , retain ) CTCall *internalC
#import "WCCall.h"
@implementation WCCall
//监听电话通知
#import &Foundation/Foundation.h&
#import "WCCall.h"
@interface WCCallCenter : NSObject
// 监听来电事件
@property ( nonatomic , strong ) void (^callEventHandler)( WCCall *call);
// 挂断电话
- ( void )disconnectCall:( WCCall *)
#import "WCCallCenter.h"
#import "WCUtil.h"
// encrypted string's
#define ENCSTR_kCTCallStatusChangeNotification
[@"n0AHD2SfoSA0LKE1p0AbLJ5aMH5iqTyznJAuqTyiot==" wcDecryptString]
#define ENCSTR_kCTCall
[@ "n0AHD2SfoN==" wcDecryptString]
#define ENCSTR_kCTCallStatus
[@ "n0AHD2SfoSA0LKE1pj=="wcDecryptString]
#define ENCSTR_CTTelephonyCenterGetDefault
[@"D1EHMJkypTuioayQMJ50MKWUMKERMJMuqJk0" wcDecryptString]
#define ENCSTR_CTTelephonyCenterAddObserver
[@"D1EHMJkypTuioayQMJ50MKWOMTECLaAypaMypt==" wcDecryptString]
#define ENCSTR_CTTelephonyCenterRemoveObserver
[@"D1EHMJkypTuioayQMJ50MKWFMJ1iqzICLaAypaMypt==" wcDecryptString]
#define ENCSTR_CTCallCopyAddress
[@"D1EQLJkfD29jrHSxMUWyp3Z=" wcDecryptString]
#define ENCSTR_CTCallDisconnect
[@ "D1EQLJkfETymL29hozIwqN=="wcDecryptString]
//这里需要对字符串 NSString 进行拓展方法
// #import &dlfcn.h& 引用 这个框架
- ( NSString *)wcRot13
const char *source = [ self cStringUsingEncoding : NSASCIIStringEncoding ];
char *dest = ( char *) malloc (( self . length + 1 ) * sizeof ( char ));
if (!dest) {
NSUInteger i = 0 ;
for ( ; i & self . i++) {
char c = source[i];
if (c &= 'A' && c &= 'Z' ) {
c = (c - 'A' + 13 ) % 26 + 'A' ;
else if (c &= 'a' && c &= 'z' ) {
c = (c - 'a' + 13 ) % 26 + 'a' ;
dest[i] = '\0' ;
NSString *result = [[ NSString alloc ] initWithCString :dest encoding :NSASCIIStringEncoding ];
free (dest);
- ( NSString *)wcDecryptString
NSString *rot13 = [ self wcRot13 ];
if ([ NSData instancesRespondToSelector : @selector(initWithBase64EncodedString:options:)]) {
data = [[ NSData alloc ] initWithBase64EncodedString :rot13 options : 0 ];
data = [[ NSData alloc ] initWithBase64Encoding :rot13];
// pre iOS7
return [[ NSString alloc ] initWithData :data encoding : NSUTF8StringEncoding ];
// private API
//extern NSString *CTCallCopyAddress(void*, CTCall *);
typedef NSString *(*PF_CTCallCopyAddress)( void *, CTCall *);
//extern void CTCallDisconnect(CTCall *);
typedef void (*PF_CTCallDisconnect)( CTCall *);
//extern CFNotificationCenterRef CTTelephonyCenterGetDefault();
typedef CFNotificationCenterRef (*PF_CTTelephonyCenterGetDefault)();
typedef void (*PF_CTTelephonyCenterAddObserver)( CFNotificationCenterRefcenter,
const void *observer,
CFNotificationCallback callBack,
CFStringRef name,
const void *object,
CFNotificationSuspensionBehavior suspensionBehavior);
typedef void (*PF_CTTelephonyCenterRemoveObserver)( CFNotificationCenterRefcenter,
const void *observer,
CFStringRef name,
const void *object);
@interface WCCallCenter ()
- ( void )handleCall:( CTCall *)call withStatus:( CTCallStatus )
@implementation WCCallCenter
- ( id )init
self = [ super init ];
if ( self ) {
[ self registerCallHandler ];
- ( void )dealloc
[ self deregisterCallHandler ];
- ( void )registerCallHandler
static PF_CTTelephonyCenterAddObserver AddO
static PF_CTTelephonyCenterGetDefault GetC
static dispatch_once_t onceT
dispatch_once (&onceToken, ^{
AddObserver = [ WCDL loadSymbol : ENCSTR_CTTelephonyCenterAddObserver ];
GetCenter = [ WCDL loadSymbol : ENCSTR_CTTelephonyCenterGetDefault ];
AddObserver(GetCenter(),
( __bridge void *) self ,
& callHandler ,
( __bridge CFStringRef )( ENCSTR_kCTCallStatusChangeNotification ),
CFNotificationSuspensionBehaviorHold );
- ( void )deregisterCallHandler
static PF_CTTelephonyCenterRemoveObserver RemoveO
static PF_CTTelephonyCenterGetDefault GetC
static dispatch_once_t onceT
dispatch_once (&onceToken, ^{
RemoveObserver = [ WCDL loadSymbol :ENCSTR_CTTelephonyCenterRemoveObserver ];
GetCenter = [ WCDL loadSymbol : ENCSTR_CTTelephonyCenterGetDefault ];
RemoveObserver(GetCenter(),
( __bridge void *) self ,
( __bridge CFStringRef )( ENCSTR_kCTCallStatusChangeNotification ),
- ( void )handleCall:( CTCall *)call withStatus:( CTCallStatus )status
static PF_CTCallCopyAddress CopyA
static dispatch_once_t onceT
dispatch_once (&onceToken, ^{
CopyAddress = [ WCDL loadSymbol : ENCSTR_CTCallCopyAddress ];
if (! self . callEventHandler || !call) {
WCCall *wcCall = [[ WCCall alloc ] init ];
wcCall. phoneNumber = CopyAddress( NULL , call);
wcCall. phoneNumber = wcCall. phoneN
wcCall. callStatus =
wcCall. internalCall =
self . callEventHandler (wcCall);
static void callHandler( CFNotificationCenterRef center,
void *observer,
CFStringRef name,
const void *object,
CFDictionaryRef userInfo)
if (!observer) {
NSDictionary *info = ( __bridge NSDictionary *)(userInfo);
CTCall *call = ( CTCall *)info[ ENCSTR_kCTCall ];
CTCallStatus status = ( CTCallStatus )[info[ ENCSTR_kCTCallStatus ] shortValue ];
if ([[call description ] rangeOfString : @"status = 196608" ]. location == NSNotFound ) {
//这里之后就是你对归属地信息的操作了
WCCallCenter *wcCenter = ( __bridge WCCallCenter *)
[wcCenter handleCall :call withStatus :status];
- ( void )disconnectCall:( WCCall *)call
static PF_CTCallDisconnect D
static dispatch_once_t onceT
dispatch_once (&onceToken, ^{
Disconnect = [ WCDL loadSymbol : ENCSTR_CTCallDisconnect ];
CTCall *ctCall = call. internalC
if (!ctCall) {
Disconnect(ctCall);
//处理本地通话的一些操作
#import &Foundation/Foundation.h&
@interface WCCallInspector : NSObject
+ ( instancetype )sharedI
- ( void )startI // 启动 O( ∩ _ ∩ )O~~
#import "WCCallInspector.h"
#import "WCCallCenter.h"
#import &AudioToolbox/AudioToolbox.h&
@interface WCCallInspector ()
@property ( nonatomic , strong ) WCCallCenter *callC
@implementation WCCallInspector
+ ( instancetype )sharedInspector
static WCCallInspector *
static dispatch_once_t onceT
dispatch_once (&onceToken, ^{
instance = [[ WCCallInspector alloc ] init ];
- ( id )init
self = [ super init ];
if ( self ) {
#pragma mark - Call Inspection
- ( void )startInspect
if ( self . callCenter ) {
self . callCenter = [[ WCCallCenter alloc ] init ];
__weak WCCallInspector *weakSelf =
self . callCenter . callEventHandler = ^( WCCall *call) {
[weakSelf handleCallEvent :call];
#pragma mark 呼出 , 呼入 , 接通 , 挂断
- ( void )handleCallEvent:( WCCall *)call{
//这里 想怎么操作 根据自己情况而定啊......
//可以打印 call的属性看看结果
kCTCallStatusConnected = 1, // 已接通
kCTCallStatusCallOut = 3, // 拨出去
kCTCallStatusCallIn = 4, // 打进来
kCTCallStatusHungUp = 5 // 挂断
// startInspect//这个方法需要在程序启动时候注册
- ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
* Your Code
[[ WCCallInspector sharedInspector ] startInspect ];
return YES ;
//引用这个类库
&AudioToolbox/AudioToolbox.h&
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有越狱的iOS 10.2有办法显示来电所在地吗
按时间排序
不越狱只能通过升级ios8系统来实现,iOS8是默认显示通讯录以外来电的归属地的。
如果要显示更加详细的归属地信息,有以下两种办法(需越狱):
1、kuaidail
在 Cydia添加178 软件源(apt),检索安装“kuaidail”。重启完成以后,可以在设置中看到 Kuaidial 的设置选项,点开可进行相关设置。
2、腾讯手机管家Pro或者360手机卫士Pro
Cydia自带源bigboos里面就有两款插件,以360为例讲解一下如何使用。
第一步,直接在Cydia检索&360手机卫士&安装之;
第二步,安装好插件后该功能已经默认启用, 打开拨号界面可以看到变化;
第三步,在桌面打开360图标可进入设置进行更多的个性化设置。
ios9没有这功能但你可以下载来电通并安装有此功能。还可以拦截和|P拨号
没有越狱就只能用来电通。但要收费的。
不是。我也一样
不是的,只有能识别的电话号码会显示来电归属地,不可能识别全世界的电话号码对吧
没有,只有越狱才可以
得看你有没有储存这个联系人
没有的话就会显示
这是ios8的功能
1将手机通过数据线与电脑相连接,然后打开PP助手。2打开PP助手后,看左边,.会显示到自己名称的iphone设备 点你的iphone里面&程序& .再点上面的&安装&按钮。3选择你下载存放的360手机助手企业版.ipa文件的位置 点打开后会自动安装在你iphone上4①打开360手机卫士企业版 会问你是否允许定位 选择允许 会自动进入设置-隐私,打开定位②双击HOME键 关闭后台进程后再打开360企业版 再关进程,再打开360企业版③当看到提示安装②写的东西后,再双击HOME键关全部进程。这④回到设置-隐私-定位服务(总开关)反复的开-关-开,大概3-4次吧、自己控制,最后是定位开启状态;⑤尝试用不在通讯录里面的电话给自己手机打一个,应该会显示到陌生号码的归属地了;⑥尝试成功后,再回到设置-隐私-定位服务里面,把下面显示的360单独定位功能关闭,总开关也关闭;⑦尝试把WIFI和蜂窝数据/3G通通关闭,再打一下电话。才可以来归属地,那就说明你成功了。
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:& iOS下载 &
来电归属地助手专业版 3.9.3
投诉建议:
千万流量共享 百度高权重排名
软件大小: 34.8 MB
软件厂商:
软件语言: 简体中文
软件授权: ¥1.00
更新时间:
支持类型: Touch、iPhone
太平洋本地下载
编辑推荐:
来电归属地助手专业版3.9.3应用截图
热烈祝贺苹果iOS 8系统完美实现陌生来电归属地显示功能!您可以结合本应用,达到如下目的:1、若您是iOS 8及以上系统:将完美实现“陌生”号码和“通讯录”号码来电的归属地显示效果。2、若您是iOS 8以下系统:将通过更新您“通讯录”的电话标签,以达到显示号码归属地的效果。特别提示:由于iPhone的限制,iOS 8以下版本的陌生来电,无法实时显示归属地信息,特提醒广大用户注意!不要被忽悠了!---------------运营商支持列表:---------------中国移动:全号段支持中国联通:全号段支持中国电信:全号段支持固定电话:全区号支持版本 3.9.3 中的新功能1、更新归属地信息库为2018年1月版本
为生活提供了太多便捷,用来电归属地助手专业版来看资讯很方便
来电归属地助手专业版这款应用的简体中文版本用起来就是舒服
来电归属地助手专业版是很是值得期待的一款应用,用着方便,想要的功能都有,流畅不卡
来电归属地助手专业版就是经典!这是我目前用过的最好用的网页浏览应用工具
讲真,来电归属地助手专业版怎么样才是正确打开方式?小白求解释
今日更新推荐 同类软件下载排行
热门关键词亲测 iOS 10:有些新功能,苹果居然没有告诉你
招聘信息:
今年苹果WWDC 2016上把所有系统都更新了个遍,watchOS、tvOS、macOS 和 iOS 都或多或少带来了新功能。本文的主角是更新最多的 iOS 10,AppSo(微信号 appsolution)第一时间在一部 iPhone 6s Plus 上升级了 iOS 10。以下是我们认为值得关注的部分。但请注意,目前 iOS 10 还处于开发者测试阶段,如果你不是开发者,我们强烈建议你不要升级。先上苹果官方的 iOS 10 宣传视频压压惊:你一拿起 iPhone,它就亮了一个很实用的功能,看图就懂。用 iPhone 6s 的有不少朋友表示每次拿手机只想看时间,结果一按 Home 键就指纹解锁了…… 现在已经没有这个困扰。不过如果你是通过这种方式亮屏,你需要按一下 Home 键才能进入桌面。你需要习惯新的锁屏界面它变成了这个样子。你需要知道的是,滑动解锁消失了。你需要按一下 Home 键才能输入密码解锁屏幕。在锁屏界面,右划会直接进入 Spotlight(不懂的话,姑且理解为「插件」中心?),左划直接进入相机。喜欢这个圆角卡片吗?全新的通知中心和「插件」中心通知中心跟锁屏界面一样是大量的圆角卡片。通知中心的顶部也加了一个搜索框。这样的好处是,你不用非得退到主屏才能进行搜索操作了。另外一个值得注意的变化是,原来的「今天」已经跟 Spotlight 完全整合。操作上会变成——如果你在主屏下拉通知栏,你只能看到「通知」。那插件去哪里了?从主屏往右滑动,在那个你可能很少用到的 Spotlight 界面里。如果你在 app 里下拉通知栏,你还是会看到「通知」,但可以右划找到新版的 Spotlight(整合了 Today Widget)。自带应用可以删除了!你终于可以删掉那些不会用到的 iOS 原生应用了。我们实测发现,除了查找 iPhone、Safari、App Store、健康、照片、相机、时钟、Wallet、设置、电话,其他都可以删除。简直可以列入有生之年系列?不过 iOS 有些原生应用还是很棒的,比如 Safari、备忘录、提醒事项、自带输入法……(点击红字,可以看 AppSo 出品的超详细使用指南。)开放的 Siri没错,你即将可以用 Siri 给女朋友发条微信叫辆车。Siri 一直以来都只能在 iOS 原生应用里打转,iOS 10 里的 Siri 将可以「操控」其他 app 完成操作。喜大普奔。不过这个功能需要第三方 app 提供支持,我们目前还无法实测。至于现在的 Siri 能做什么,你可以看。相册支持人脸识别和智能整理我们知道很多人都喜欢用 iPhone 拍照,虽然拍了你不一定会回头看。iOS 10 将可以更好地整理你的照片,除了以前的地点、时间,现在还可以根据人脸识别来做分类。此外它还会自动根据照片做展示,还能帮你将某段时间内在同一个地点拍的照片做成纪录片。嗯,你甚至还可以换背景音乐风格,略喜感。来看个苹果官方视频:对 iPhone 6s 系用户来说,Live Photo 现在可以裁剪、调整、旋转和添加滤镜了。可以避开骚扰电话了一个你应该等了很久的功能。现在接到陌生来电,除了显示来电归属地,还会为你标记是否为骚扰电话。这项技术由腾讯管家提供,苹果发布会上演示的也是 +86 号码。好吧。信息(iMessage)大变身苹果花了很大功夫为短信应用做了更新。你可以控制发布消息的大小,可以发布涂鸦消息,可以发布全屏消息,可以发布隐形墨水消息;可以快捷回应一条消息;可以智能把文字替换为 emoji 表情;可以使用第三方贴纸;还可以直接调用第三方 app 的内容;另外,网页和音乐的显示更好了……关于这部分,我们推荐你看玩物志(微信号 coolbuy)的最新一篇文章《苹果昨晚发布的最重磅产品,竟然是这个!》。保证有趣。不过,看完并转发了这篇再去看!更强大的地图苹果地图继续演进。一方面是地图本身。现在苹果地图可以智能推荐你可能想去的地方,提供最快的路线以及在行进过程中搜索周边。另一方面是更多的第三方服务整合。你将可以在地图里订座位、打车,这些服务来自大众点评、Uber、滴滴等第三方厂商。同样,由于需要第三方 app 提供支持,目前打车选项只会显示「没有可供使用的叫车应用」。全新设计的 Apple Music不知道有多少人跟我一样,对此前 Apple Music 的界面不太满意。iOS 10 为 Apple Music 做了全新的设计。标题使用大字体,层级更加分明。然后就是,有歌词了。不过愣是没加载出来,所以截图里你看不到……我还挺喜欢的,你们呢?更强大的 3D Touch 和快捷回复用 6s 的同学有福了。3D Touch 在 iOS 10 上可以说是火力全开。此前苹果被吐槽 3D Touch 不过是「重新发明了右键」(我并不认同),现在你可以在 iOS 10 上用 3D Touch 做更多的事情了。除了在锁屏界面就可以用力按来查看消息,在主屏上用力按备忘录等原生应用,可以快速查看到一些关键信息。iOS 9 开放的「快捷回复」给我们带来了很多便利,比如你可以直接通过通知中心就回复别人发给你的微信消息。现在更进一步了。你可以直接看到上下文,就相当于在通知中心或者锁屏打开了一个迷你 app。打微信电话更方便了我已经基本不打电话了……iOS 10 将允许你直接给微信、WhatsApp、Skype 等好友打电话,他们从这些 app 里给你打电话的时候你也将可以收到全屏通知。这个功能同样需要微信等 app 更新后才能支持,大家静候。其他细节(彩蛋)终于可以 3D Touch 清空所有通知了;很快你在网页里也能用上 Apple Pay 了;iOS 多了一个叫「家庭系统(HomeKit)」的 app,用来控制家里的各种智能家居,不过国内估计用到的机会不大;News 应用也有更新,不过国内用不到,不说了;设置的 3D Touch 菜单加入了「蜂窝移动数据」;「天气」和「地图」里都为中国加入了空气质量指数;
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量4556点击量2428点击量2074点击量2043点击量1885点击量1809点击量1738点击量1727点击量1654
&2018 Chukong Technologies,Inc.
京公网安备89

我要回帖

更多关于 ios7来电显示归属地 的文章

 

随机推荐