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(@"有物體遠離!!!");
}
}