Touch Id 和 距离传感器的使用方法
Touch id 是8.0系统之后苹果出的一个指纹功能,要使用先要判断系统是否支持。
需要添加LocalAuthentication.framework包,
引入头文件LocalAuthentication.h并创建LAContext。
Touch Id代码:
// Touch Id 需要系统8.0以上
if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_8_0) {
NSLog(@"iOS8.0以上");
} else {
NSLog(@"iOS8.0以下");
}
// Touch Id
// 创建LAContext
_lacontext = [[LAContext alloc] init];
NSError *error;
if ([_lacontext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
[_lacontext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"弹出框的提示文字" reply:^(BOOL success, NSError * _Nullable error) {
if (success) {
NSLog(@"验证成功时的操作");
} else {
NSLog(@"验证失败时的操作");
}
}];
} else {
NSLog(@"不支持Touch id");
}
距离传感器代码:
// 距离传感器(我们在打电话的时候,当屏幕靠近自己的大脸( ̄ε(# ̄)☆╰╮( ̄▽ ̄///) ,屏幕就会关闭了。当远离障碍物的时候,屏幕就又亮了。这其实就用到了距离传感器。)
// 判断是否支持距离传感器
if (([UIDevice currentDevice].proximityMonitoringEnabled = YES)) {
NSLog(@"支持距离传感器");
// 通过通知监听是否有物体靠近还是离开
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(proximityStateDidChange:) name:UIDeviceProximityStateDidChangeNotification object:nil];
} else {
NSLog(@"不支持距离传感器");
}
// 距离传感器监听的事件
- (void)proximityStateDidChange:(NSNotification *)note {
if ([UIDevice currentDevice].proximityState) {
NSLog(@"有物体靠近!!!");
} else {
NSLog(@"有物体远离!!!");
}
}