मेरे पास 8.0 है, यह ठीक काम कर रहा है।
-(void) startScanForRSSI{
timerRSSI = [NSTimer scheduledTimerWithTimeInterval:10.0f target:self selector:@selector(detectRSSI) userInfo:nil repeats:YES];
}
- (void)detectRSSI {
if (state == ...) {
peripheral.delegate = self;
[peripheral readRSSI];
} else {
if (timerRSSI && [timerRSSI isValid]) {
[timerRSSI invalidate];
}
}
}
- (void)peripheralDidUpdateRSSI:(CBPeripheral *)peripheral error:(NSError *)error {
NSLog(@"Got RSSI update: %4.1f", [peripheral.RSSI doubleValue]);
NSNumber *rssiNum = peripheral.RSSI;
}
ऊपर के बाद से iOS 8 में हटाई गई है, अन्य प्रतिनिधि की कोशिश कर रहा है, वापस रिपोर्ट करेंगे।
-(void) peripheral:(CBPeripheral *)peripheral didReadRSSI:(NSNumber *)RSSI error:(NSError *)error {
NSLog(@"Got RSSI update in didReadRSSI : %4.1f", [RSSI doubleValue]);
}
यह एक ओएसएक्स प्रतिनिधि विधि प्रतीत होता है। आरएसएसआई के लिए आईओएस में ऐप्पल जल्द ही कुछ जोड़ देगा।
आईओएस 8.0 में didReadRSSI काम कर रहा है। 8.0.2 दस्तावेज में यह आईओएस के तहत सूचीबद्ध नहीं है।
अगर मैं दोनों तरीकों didReadRSSI आईओएस में कहा जाता हो जाता है 8 & peripheralDidUpdateRSSI आईओएस 7.
में बुलाया जाता है तो आईओएस 8.0.2 को अपडेट नहीं करते सेब RSSI के लिए कुछ कहते हैं जब तक डाल दिया।
क्या किसी ने आईओएस 8.1 बीटा की कोशिश की?
ऐसा लगता है कि आरएसएसआई को पढ़ा नहीं जा सकता है। यदि कॉल [CBCentralManager scanForPeripheralsWithServices ...] को कॉल किया गया है तो ReadRSSI का कोई प्रभाव नहीं होता है (कोई प्रतिनिधि नहीं कहा जाता है)। लेकिन अगर [CBCentralManager stopScan] जारी किया जाता है तो ReadRSSI प्रतिसाद देना शुरू कर देता है।
यह भी ध्यान दें: डिवाइस को आदेश जारी करने के लिए कनेक्ट राज्य में होना चाहिए अन्यथा आपको मिल जाएगा: कोरब्लूथूट [एपीआई मिसयू] सीबीपीरिफेरल केवल कनेक्ट स्थिति में कमांड स्वीकार कर सकता है।
स्रोत
2014-10-16 18:18:12
परिधीय से कनेक्ट करने का प्रयास करें [एक समान प्रश्न के मेरे उत्तर] (http://stackoverflow.com/a/27030526/4272525)। –
मुझे अपने आईफोन को फिर से काम करने के लिए रीसेट करना पड़ा, पावर और होम बटन पकड़े हुए। – marcelosalloum