- (NSString *)reverseString:(NSString *)text {
NSInteger length = text.length;
NSMutableString *rev = [NSMutableString string];
for (int i = 0; i < length; i++) {
unichar str = [text characterAtIndex:length-i-1];
[rev appendFormat:@"%c",str];
}
return rev;
}
- (NSString *)gen_homekit_setup_uri_withCategory:(int)category
withPsw:(NSString *)psw
withSetupId:(NSString *)setupId {
int version = 0;
int reserved = 0;
int flags = 2;
long payload = 0;
payload |= (version & 0x7);
payload <<= 4;
payload |=(reserved & 0xf); // reserved bits
payload <<= 8;
payload |= (category & 0xff);
payload <<= 4;
payload |= (flags & 0xf);
payload <<= 27;
payload |= ([psw stringByReplacingOccurrencesOfString:@"-" withString:@""].intValue) & 0x7fffffff;
NSString *BASE36 = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
NSString *encodedPayload = @"";
for (int i = 0; i < 9; i++) {
int index = payload % 36;
unichar temp_code = [BASE36 characterAtIndex:index];
encodedPayload = [encodedPayload stringByAppendingFormat:@"%c", temp_code];
payload /= 36;
}
return [NSString stringWithFormat:@"X-HM://%@%@",
[self reverseString:encodedPayload],
setupId];
}
-(void)test() {
// X-HM://00527Y91Q1QJ8
int accsory_cateory = 5;
NSString *psw = @"123-45-678";
NSString *setupId = @"1QJ8";
NSLog(@"%@",[self gen_homekit_setup_uri_withCategory:5 withPsw: psw withSetupId: setupId]);
}
HomeKit 二維碼生成規(guī)則
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- github 下載地址: https://github.com/ZenKingLen/KLAboutQRCodeDemo
- 一、二維碼生成方法 使用Google開源庫Zxing(gitHub上自己搜吧 簡書不讓放外鏈 感覺是nz有?。?二...
- 序言 在iOS7之前二維碼掃描主要是用的第三方庫,如ZXing或者ZBar。使用起來比較麻煩,出錯也不容易調(diào)試。i...
- 寫在前面:這篇文章暫分四部分來介紹原生二維碼掃描。 蘋果原生二維碼的功能確實(shí)很強(qiáng)大,掃描速度快,不需要對項(xiàng)目進(jìn)行配...
- 二維碼掃描在App中很常見的功能,之前都是用三方工具Zing、ZBar。后來Apple的AVFoundation也...