डिस्कनेक्ट करता है मैं आईओएस 8.3 में एक अजीब बग देख रहा हूं और सोच रहा हूं कि कोई और एक ही चीज़ देख रहा है।कोर ब्लूटूथ: सीबीपीरिफेरल प्रत्येक ~ 10 सेकंड
मेरे पास बहुत करीब निकटता में एक आईपैड एयर (केंद्रीय मोड में) और एक आईफोन 6 (पेरिफेरल मोड में) है।
- मेरे
CBCentralManager
एक सीरियल पृष्ठभूमि कतार औरCBCentralManagerOptionRestoreIdentifierKey
विकल्प के साथ आरंभ नहीं हो जाता - प्रबंधक
CBCentralManagerScanOptionAllowDuplicatesKey: true
विकल्प centralManager:didDiscoverPeripheral:
के भीतर मैं बाह्य उपकरणों की एक सूची है कि पहले से ही खोज कर रहे हैं के खिलाफ जांच का उपयोग कर बाह्य उपकरणों के लिए स्कैनिंग शुरू होता है:
let connect:() ->() = { peripheral.delegate = self self.devices[peripheral.identifier.UUIDString] = peripheral self.manager.connectPeripheral(peripheral, options: nil) } if let device = devices[peripheral.identifier.UUIDString] { if device.peripheral.state == .Disconnected { connect() } } else if peripheral.state == .Disconnected { connect() }
- एक बार कनेक्ट होने पर, मैं सेवाओं और विशेषताओं को खोजता हूं।
परिधीय अब डिस्कनेक्ट के बारे में 10 सेकंड के बाद, तुरंत फिर से खोज की और फिर से जोड़ता है। 10 सेकंड बाद यह प्रक्रिया खुद को दोहराती है।
क्या यह एक बग है या क्या मैं यहां कुछ गलत कर रहा हूं?
मैंने परिधीय पर एक विशेषता की सदस्यता लेने की भी कोशिश की है, लेकिन ऐसा कुछ भी नहीं दिख रहा था।
मैं एक iOS8.3 डिवाइस पर अपने परीक्षण एप्लिकेशन का इस्तेमाल किया के साथ विशेषता के लिए सब्सक्राइब करना चाहिए और मैं इस नहीं दिख रहा है - एक Fitbit फ्लेक्स परिधीय और के रूप में एक और iOS डिवाइस के साथ दोनों एक परिधीय क्या कोई विशेष कारण है कि आप अनुमति डुप्लीकेट कुंजी सेट कर रहे हैं? यह आमतौर पर आवश्यक नहीं है और बैटरी नाली जाती है। मुझे बीएलई परिधीय कनेक्शन के घंटों तक कनेक्शन बनाए रखने में कोई समस्या नहीं है। – Paulw11
धन्यवाद पॉल, मैं आरएसएसआई के आधार पर कार्यों को करने के लिए डुप्लीकेट कुंजी का उपयोग कर रहा हूं। क्या आप एक बार परिधीय से जुड़ते हैं? आप किस विशेषताओं को पढ़ते/लिखते/सदस्यता लेते हैं? परिधीय अद्यतन लगातार मूल्यों को महत्व देता है? मुझे लगता है कि इसके साथ कुछ करने के लिए हो सकता है? – desktop
मैं एक बार परिधीय से कनेक्ट करता हूं। यदि आप जुड़े परिधीय के आरएसएसआई मान प्राप्त करना चाहते हैं, तो आप 'readRSSI' सीबीपीरफेरल विधि का उपयोग कर सकते हैं। मेरा नमूना कोड किसी भी विशेषता – Paulw11