मुझे एक ही समस्या है और this जैसे कई धागे कहते हैं कि आप CoreBluetooth द्वारा मैक पता नहीं प्राप्त कर सकते हैं। मैं एक बीएलई परिधीय (मेरा मतलब खुला और कनेक्ट करने योग्य परिधीय) से कनेक्ट करना चाहता हूं और डेटाबेस पर कुछ जानकारी संग्रहीत करना ताकि एक अलग आईफोन एक ही डेटाबेस को पढ़ सके और सूचनाओं का उपयोग उसी प्रकार के बीएलई परिधीय से कनेक्ट हो। अभी के लिए मैं डिवाइस नाम पर भरोसा करते हैं, इस तरह प्राप्त:
-(void)addDiscoveredDevice:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
NSString * name = [peripheral name];
}
क्योंकि NSString * uuid = [[peripheral identifier] UUIDString];
मुझे अलग iOS उपकरणों पर अलग अलग परिणाम देता है।
इसलिए, मान लीजिए कि मेरी पहली समस्या यह जानना है कि मेरे आईफोन के करीब कितने ऐप्पल वॉच हैं, दूसरी समस्या यह जानना है कि एक ऐप्पल वॉच (जैसे जॉन का ऐप्पल वॉच) मेरे आईफोन के करीब है या नहीं। दुर्भाग्य से यह विधि काम नहीं करती है क्योंकि उपयोगकर्ता (जैसे जॉन) या कंपनियां अपने परिधीय नाम बदल सकती हैं।
हाँ मैं नाम + सेवा uuid + विशेषता uuid के संयोजन पर भरोसा कर सकता हूं लेकिन इसी कारण से, यदि नाम बदलता है तो यह बेकार है। क्या किसी को कोई समाधान मिला है?
स्रोत
2017-08-13 12:14:02
हाँ आईओएस 9.0 के साथ काम करते समय भी समस्या का सामना करना पड़ा। पहचानकर्ता आईओएस 8.0 तक सभी उपकरणों पर समान रहता था। अभी भी एक जवाब की तलाश है। –
क्या आप परिधीय खोजने के लिए EAAccessoryManager का उपयोग करते हैं? यदि आप इनमें से किसी एक के साथ काम कर सकते हैं तो आप सभी EACccessory गुणों की जांच करते हैं। (modelNumber, serialNumber, name ....) – LoVo
जब तक कि आपका परिधीय किसी GATT विशेषता के माध्यम से किसी प्रकार का अद्वितीय पहचानकर्ता प्रदान नहीं करता है, मुझे नहीं लगता कि कोई समाधान – Paulw11