IOS NFC获取UID

阅读: 评论:0

IOS  NFC获取UID

IOS NFC获取UID

iOS11开放了NFC的功能,但是仅限于iPhone7和7plus上使用,下面就介绍一下它的使用。(这里我用xcode11.2,iOS13.1)

开发者证书开通nfc权限

#import <CoreNFC/CoreNFC.h>

 

info.plist加入下边的字段:

com.apple.adersession.formats
 数组里再加入
 NDEF

 

Privacy - NFC Scan Usage Description

we are going to use your nfc

 

一:获取UID;

Delegate为:NFCTagReaderSessionDelegate

@property (strong, nonatomic)NFCTagReaderSession *session;

@property(strong,nonatomic)id<NFCTag> cuurentTag;

 if (@available(iOS 13.0, *)) {
            self.session = [[NFCTagReaderSession alloc]
                                          
                                          initWithPollingOption:(NFCPollingISO14443 | NFCPollingISO15693 | NFCPollingISO15693) delegate:self queue:dispatch_get_main_queue()];
            } else {
                          // Fallback on earlier versions
            }

}

 if (@available(iOS 11.0, *)) {
        if (adingAvailable) {
            self.session.alertMessage = @"把卡放到手机背面";
            [self.session beginSession];//启动 Session
        } else {
            NSLog(@"此设备不支持NFC");
        }
    } else {
        // Fallback on earlier versions
    }

-(void)readerSessionDidBecomeActive:(NFCNDEFReaderSession *)session{
    NSLog(@"开始扫描");
}

-(void)tagReaderSession:(NFCTagReaderSession *)session  didDetectTags:(NSArray<__kindof id<NFCTag>> *)tags{
    NSLog(@"%@",tags);
    self.cuurentTag = [tags firstObject];
    id<NFCMiFareTag> mifareTag = [self.cuurentTag asNFCMiFareTag];
    NSData *data = mifareTag.identifier;
   NSString *string = [self convertDataBytesToHex:data];
    NSLog(@"result---%@",string);

}

- (NSString *)convertDataBytesToHex:(NSData *)dataBytes {
    if (!dataBytes || [dataBytes length] == 0) {
        return @"";
    }
    NSMutableString *hexStr = [[NSMutableString alloc] initWithCapacity:[dataBytes length]];
    [dataBytes enumerateByteRangesUsingBlock:^(const void *bytes, NSRange byteRange, BOOL *stop) {
        unsigned char *dataBytes = (unsigned char *)bytes;
        for (NSInteger i = 0; i < byteRange.length; i ++) {
            NSString *singleHexStr = [NSString stringWithFormat:@"%x", (dataBytes[i]) & 0xff];
            if ([singleHexStr length] == 2) {
                [hexStr appendString:singleHexStr];
            } else {
                [hexStr appendFormat:@"0%@", singleHexStr];
            }
        }
    }];
    return hexStr;
}

恭喜你,已经获取到了。。。

本文发布于:2024-02-02 00:12:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170680965240090.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:IOS   NFC   UID
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23