2013-12-13 8 views
5

के बीच अंतर मैं CLBeaconRegion UUID और स्ट्रिंग पहचानकर्ता के महत्व के बारे में थोड़ा उलझन में हूं। यदि मेरे CLBeaconRegion में पहले से ही एक अद्वितीय आईडी है, तो अतिरिक्त, गैर-अद्वितीय स्ट्रिंग पहचानकर्ता के उपयोग को मजबूर करने का क्या मतलब है? क्या यह पूरी तरह से "कॉस्मेटिक" है?iBeacon - proximityUUID और region.identifier

चूंकि उपयोगकर्ता बीकन क्षेत्रों को स्कैन और कनेक्ट करने में सक्षम नहीं होंगे क्योंकि वे वाईफाई (और एसएसआईडी) के साथ करते हैं, और चूंकि रिसीवर ऐप को CLBeaconRegion को पूर्व-कोडित और पूर्व-परिभाषित करने और श्रेणीबद्ध करने के लिए पूर्व-परिभाषित करने की आवश्यकता होती है एक क्षेत्र में बीकन के लिए, पहचानकर्ता का वास्तविक उपयोग क्या है?

मैंने उदाहरण देखे हैं जहां लोग com.companyname.app जैसी चीजों के लिए इसका उपयोग कर रहे हैं, जिसे मैंने अधिक समझ में लिया था, अगर पहचानकर्ता को ऐप के हस्ताक्षर प्रमाणपत्र से मेल खाने के लिए उपयोग किया गया था (लेकिन ऐसा नहीं लगता है !)। अन्य इसका इस्तेमाल "बीकन उदाहरण", "ऐप्पल", "रसोई" जैसे नाम रखने के लिए कर रहे हैं।

दूसरे शब्दों में, मुझे नहीं पता कि रिसीवर को एक क्षेत्र निर्दिष्ट करने की आवश्यकता क्यों है। पहचानकर्ता क्योंकि यह नहीं जानता कि यह कौन सा ब्रॉडकास्टर नाम कनेक्ट होगा। कोई फर्क नहीं पड़ता कि मैं ब्रॉडकास्टर का नाम कैसे देता हूं, रिसीवर हमेशा इसके पक्ष में परिभाषित पहचानकर्ता प्राप्त करेगा।

उत्तर

15

CLBeaconRegion स्ट्रिंग पहचानकर्ता के पास iBeacon प्रसारण में आईडी के साथ कुछ लेना देना नहीं है। यह कई क्षेत्रों का ट्रैक रखने के लिए CoreLocationManager द्वारा उपयोग की जाने वाली लुकअप कुंजी है।

आप जो कुछ भी चाहते हैं उसका मूल्य बना सकते हैं, लेकिन लोग अक्सर पैकेज-स्टाइल क्वालीफायर का उपयोग करते हैं क्योंकि यह ऐप-विशिष्ट अद्वितीय स्ट्रिंग बनाने का एक आसान तरीका है।

आईडी का मुख्य उद्देश्य आता है यदि आप अपने क्षेत्र की सीमा/निगरानी को संशोधित करना या बंद करना चाहते हैं। एक ही आईडी का उपयोग करके, कोरलोकेशन जानता है कि आप किस क्षेत्र का जिक्र कर रहे हैं।

नीचे दिए गए उदाहरण में, हम क्षेत्र 1 का निर्माण करते हैं, फिर इसके लिए निगरानी शुरू करते हैं। फिर हम मामूली पहचानकर्ता को बदलते हैं जिसे हम क्षेत्र 2 में निगरानी कर रहे हैं और इसके लिए निगरानी शुरू कर सकते हैं। चूंकि क्षेत्र 1 और क्षेत्र 2 में सटीक समान स्ट्रिंग पहचानकर्ता का उपयोग किया जाता है, इसलिए कोरलोकेशन को दूसरे मॉनीटर वाले पहले मॉनीटर वाले क्षेत्र को प्रतिस्थापित करता है।

CLBeaconRegion *region1 = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] major: 1 minor: 1 identifier: @"my.made.up.unique.identifer]; 
[_locationManager startMonitoringForRegion:region1]; 
CLBeaconRegion *region2 = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] major: 1 minor: 2 identifier: @"my.made.up.unique.identifer]; 
[_locationManager startMonitoringForRegion:region2]; 

यह आमतौर पर किसी क्षेत्र के लिए निगरानी रोकने के लिए उपयोग किया जाता है। इस तरह:

यह दूसरा उदाहरण है, जहां हम इस क्षेत्र की निगरानी बंद करो में, यह वास्तव में क्षेत्र उद्देश्य यह है कि CoreLocation हो रही है कि इस क्षेत्र की निगरानी को रोकने के लिए महत्वपूर्ण है अंदर कि स्ट्रिंग पहचानकर्ता है।

+0

धन्यवाद डेविड। पूरी तरह उत्तर दिया और अब समझ लिया। –

संबंधित मुद्दे