2014-09-20 12 views
6

तो CBPeripheralDelegate प्रलेखन पढ़ने से ऐसा लगता है कि RSSI और peripheralDidUpdateRSSI:error: आईओएस 8.iOS 8 CoreBluetooth पदावनत RSSI तरीकों

साथ पदावनत किया गया मैंने देखा है कि मेरी सिग्नल की शक्ति सूचक नहीं रह गया है अपडेट किया जा रहा था, तो मैं कुछ शोध किया और एक नई विधि ([CBPeripheralDelegate peripheral:didReadRSSI:error:]) मिली जो माना जाता है कि readRSSI विधि को कॉल करने के बाद माना जाता है कि असीमित रूप से वापस कॉल किया जाता है। दुर्भाग्यवश, इस विधि को वापस कॉल नहीं किया जाता है, भले ही मैंने अभिभावक वर्ग को सीबीपीरिफेरल प्रतिनिधि के रूप में सेट किया हो।

क्या किसी और को आईओएस 8 कोरब्लूटूथ अपडेट के साथ कोई समस्या है?

उत्तर

9

एक ज्ञात मुद्दा है जिसे ऐप्पल डेवलपर मंचों पर पोस्ट किया गया है जिसमें मेरे पास एक खुला रडार भी है।

समस्या यह प्रतीत होती है कि नई कॉलबैक विधि peripheral:didReadRSSI:error: को कभी भी आईओएस 8 पर नहीं कहा जाता है, विशेष रूप से प्रारंभिक कनेक्शन को परिधीय में बनाया जाता है। मुझे मिला एकमात्र रिज़ॉल्यूशन आपके फोन पर चालू/बंद या फोन को पुनरारंभ करके ब्लूटूथ रीसेट करना है।

Here is the link to open radar I filed.

अद्यतन:

बस मेरे उदाहरण है कि मौजूदा 8.2 रिलीज के साथ इस मुद्दे को प्रदर्शित किया गया था परीक्षण किया है और मैं अब नए iOS 8 प्रतिनिधि विधि कभी नहीं बुलाया जा रहा है साथ किसी भी मुद्दे देख रहा हूँ। मैं अपने रडार को 8.2 रिलीज के अनुसार हल कर रहा हूं।

+1

आईओएस 8.1.3 पर एक ही समस्या को देखते हुए। –

+0

मैं प्रत्येक बीटा रिलीज का परीक्षण कर रहा हूं और अगली आगामी रिलीज में यह समस्या हल हो गई है। –

-1

यह आईओएस 8.0.2 में फिर से काम करता है!

[myPeripheral readRSSI] का उपयोग करें;

1

यह आईओएस 8.0.2 काम करता है, लेकिन अब यह थ्रॉटल हो गया है। मैं प्रत्येक 200ms में एक readRSSI भेजता हूं और एक बार एक बार प्रतिक्रिया प्राप्त करता हूं। यह आईओएस 7.1 के साथ ठीक काम किया।

5

आईओएस 8.1.1, peripheral:didReadRSSI:error: केवल परिधीय के लिए बुलाया जाएगा जो आप जुड़े हुए हैं। यदि आपने केवल स्कैन के साथ परिधीय खोज की हैं और फिर उन पर readRSSI कहा जाता है, तो कॉलबैक नहीं कहा जाएगा।

परिधीय पहले से कनेक्ट करने का प्रयास करें (CBCentralManager के connectPeripheral:options: के माध्यम से), और फिर readRSSI पर कॉल करें।

+2

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना करने या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपनी पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats-reputation) हो [किसी भी पोस्ट पर टिप्पणी करने में सक्षम] [http://stackoverflow.com/help/privileges/comment)। –

+4

असल में यह प्रश्न का उत्तर प्रदान करता है। उनके प्रश्न में 'परिधीय शामिल था: didReadRSSI: त्रुटि:' नहीं बुलाया गया और उसने पूछा कि क्या किसी और के साथ समस्याएं हैं। मुझे इसके साथ समस्याएं थीं और मुझे CoreBluetooth कॉल करने का समाधान मिला जो आईओएस 8 में प्रतिनिधि विधि है: परिधीय से कनेक्ट करें। –

+0

यह परिधीय से कनेक्ट होने पर पहली बार सफलतापूर्वक वापस आ जाएगा और [परिधीय readRSSI] कॉल करें। कोई भी बाद वाला कनेक्शन didReadRSSI प्रतिनिधि विधि को कॉल करने में विफल रहेगा। –

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