की खोज iOS7 के तहत, प्राथमिक ANCS सेवा लगातार विज्ञापित किया जा करने के लिए होती है या यह सुलझा सेटिंग में सक्षम होना आवश्यक होता है/एक कस्टम CBPeripheralManager (एप्पल द्वारा निर्दिष्ट सेवा का उपयोग कर का उपयोग कर कार्यान्वित और विशेषता यूयूआईडीएस) एक संभावित अधिसूचना उपभोक्ता के लिए इसे सफलतापूर्वक खोजने और सदस्यता लेने के लिए?iOS 7 ANCS: प्राथमिक ANCS सेवा UUID
ऐप्पल प्रलेखन (CoreBluetooth Programming Guide, और ANCS Specification दोनों) इस पर किसी भी जानकारी की आश्चर्यजनक रूप से बेताब हैं। वे एक कस्टम कार्यान्वयन की आवश्यकता पर संकेत देते हैं, लेकिन यह हमारे हिस्से पर अनुमान है।
प्राथमिक एएनसीएस सेवा यूयूआईडी: 7905F431-B5CE-4E99-A40F-4B1E122D00D0
को देखते हुए, स्कैन करने से कोई हिट नहीं होती है। पूरे बीएलई स्पेक्ट्रम को स्कैनिंग, जैसा कि अपेक्षित है, अन्य बीएलई उपकरणों के लिए हिट पैदा करता है, लेकिन एक एएनसीएस डिवाइस नहीं।
संपादित करें 1:
, एक कस्टम CBPeripheralManager को परिभाषित करना और मैन्युअल रूप से उसके संबंधित लक्षण के साथ एप्पल द्वारा निर्दिष्ट ANCS सेवा जोड़ने विफल रहता है NSError साथ: नतीजतन Error Domain=CBErrorDomain Code=8 "The specified UUID is not allowed for this operation."
, ऐसा लगता है कि सेवा UUID है ऐप्पल द्वारा आरक्षित (जैसा कि यह होना चाहिए), और हम इसे इस तरह से सक्षम नहीं कर सकते हैं।
किसी भी अंतर्दृष्टि की सराहना की जाती है; हम इसके बारे में ऐप्पल तक पहुंच गए हैं, और जब हम उनसे सुनेंगे तो अपडेट हो जाएंगे।
कोड नीचे reproduces NSError ऊपर उल्लेख किया है:
// define the ANCS Characteristics
CBUUID *notificationSourceUUID = [CBUUID UUIDWithString:@"9FBF120D-6301-42D9-8C58-25E699A21DBD"];
CBMutableCharacteristic *notificationSource = [[CBMutableCharacteristic alloc] initWithType:notificationSourceUUID properties:CBCharacteristicPropertyNotifyEncryptionRequired value:nil permissions:CBAttributePermissionsReadEncryptionRequired];
CBUUID *controlPointUUID = [CBUUID UUIDWithString:@"69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9"];
CBMutableCharacteristic *controlPoint = [[CBMutableCharacteristic alloc] initWithType:controlPointUUID properties:CBCharacteristicPropertyWrite value:nil permissions:CBAttributePermissionsWriteEncryptionRequired];
CBUUID *dataSourceUUID = [CBUUID UUIDWithString:@"22EAC6E9-24D6-4BB5-BE44-B36ACE7C7BFB"];
CBMutableCharacteristic *dataSource = [[CBMutableCharacteristic alloc] initWithType:dataSourceUUID properties:CBCharacteristicPropertyNotifyEncryptionRequired value:nil permissions:CBAttributePermissionsReadEncryptionRequired];
// define the ANCS Service
CBUUID *ANCSUUID = [CBUUID UUIDWithString:@"7905F431-B5CE-4E99-A40F-4B1E122D00D0"];
CBMutableService *ANCS = [[CBMutableService alloc] initWithType:ANCSUUID primary:YES];
ANCS.characteristics = @[notificationSource, controlPoint, dataSource];
// define the Advertisement data
NSMutableDictionary *advertisementData = [NSMutableDictionary dictionary];
[advertisementData setValue:@"CUSTOM_ANCS" forKey:CBAdvertisementDataLocalNameKey];
[advertisementData setValue:@"7905F431-B5CE-4E99-A40F-4B1E122D00D0" forKey:CBAdvertisementDataServiceUUIDsKey];
// publish the ANCS service
[self.peripheralManager addService:ANCS];
पर कुछ अतिरिक्त जानकारी जोड़ दी है, मुझे अभी भी त्रुटि संदेश मिल रहा है "मैक ऐप में" इस ऑपरेशन के लिए निर्दिष्ट यूयूआईडी की अनुमति नहीं है "। आप कैसे कनेक्ट करने में सक्षम थे? – thandasoru