9

पर आईओएस 6.0.1 में सीबीपरिफेरल यूयूआईडी शून्य है, मेरे पास एक ऐसा एप्लिकेशन है जो आईओएस 6.0.1 के तहत 'ब्लूटूथ ली' डिवाइस को स्कैन और कनेक्ट करता है लेकिन आईफोन 4 एस पर, और यह अच्छा काम करता है। जब सेब की दुकान के लिए आवेदन अपलोड, वे मुझे एक आवेदन दुर्घटना, बल्ला प्रोग्रामिंग लौटने के लिए, लेकिन मैं केवल दुर्घटना समझ में जब मैं जहांआई-फोन 5

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI; 
अशक्त UUID के साथ मुझे एक परिधीय लौट

एक iphone5 पर आवेदन की कोशिश ।

मैं परिधीय, नाम, यूयूआईडी, आरएसएसआई और विज्ञापन डेटा प्रिंट करता हूं, सबकुछ अच्छा है लेकिन यूयूआईडी शून्य है, और मैं एप्लिकेशन में यूयूआईडी का उपयोग करता हूं। यह मेरा एप्लिकेशन क्रैश कर देता है, मैं शून्य यूयूआईडी को नियंत्रित कर सकता हूं, और इसका मतलब है कि मैं एप्लिकेशन को नियंत्रित नहीं कर सकता।

कोई जानता है कि क्या होता है, और एक संभावित समाधान?

+0

पोर्सिबल समाधान अगला है। – Manelonix

+0

मुझे सॉल्यूशन मिला, सेवाओं के पढ़ने के बाद यूयूआईडी से पूछा। केवल जब कनेक्शन स्थापित किया गया था, तो आप डिवाइस के यूयूआईडी को जान सकते हैं और परामर्श कर सकते हैं ... आपको जल्द ही देखेगा – Manelonix

+0

मेरे पास कोड है जो इस कॉल का उपयोग करता है, जब आईपैड पर चलाया जाता है, मुझे एक गैर बिल परिधीय होता है। यूयूआई, लेकिन यह है आईफोन 6.0.1 पर शून्य –

उत्तर

2

हमें क्या करना है अगला है: आप एनएसएलओजी के साथ परिधीय वस्तु लिख नहीं सकते हैं, लेकिन कनेक्ट होने से पहले हमारे पास परिधीय यूयूआईडी संपत्ति नहीं हो सकती है। यह हमेशा शून्य था। हम यूयूआईडी के लिए पूछते हैं जब सेवाओं को पढ़ा गया था, पहले नहीं, और फिर हम क्रैश किए बिना i-phone5 पर एप्लिकेशन नहीं चला सकते हैं।

मैंने इसे टीआई (टेक्सास यंत्र) पर पढ़ा है कि यह एक आईओएस बग था, लेकिन मुझे लगता है कि यह एक ब्लू सुरक्षा अद्यतन है, हमें यूयूआईडी से पहले पूछने से पहले कनेक्ट करने की आवश्यकता है।

1

पहले कनेक्शन के बाद, यूयूआईडी डिवाइस द्वारा याद/कैश किया जाता है। यदि बाद में एक ही परिधीय की खोज की जाती है, तो यूयूआईडी कनेक्शन से पहले उपलब्ध होगा। आप "पुनर्प्राप्त पेरिफेरल्स" को कॉल करके सभी यादगार परिधीय मांग सकते हैं।

0

यह आईओएस 6 में एक बग/फीचर एन्हांसमेंट प्रतीत होता है, जो आईफोन 5 पर खुद को अधिक स्पष्ट बनाता है, मुझे लगता है कि कोड की असीमित प्रकृति के कारण मुझे लगता है। मेरे पास भी कोड है जो 4 एस पर काम करता है लेकिन 5.

अधिकांश लोगों द्वारा पोस्ट किया गया वर्कअराउंड यह सुनिश्चित करना है कि आप इसे ढूंढने वाले हर डिवाइस से कनेक्ट हों। स्पष्टीकरण यह है कि यूयूआईडी को तब तक असाइन नहीं किया जाता जब तक कोई कनेक्शन नहीं बनाया जाता है।

आप TI सेंसर टैग कोड में इस का एक उदाहरण है जो आप TI साइट

-(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI { 

    NSLog(@"Found a BLE Device : %@",peripheral); 

    /* iOS 6.0 bug workaround : connect to device before displaying UUID ! 
     The reason for this is that the CFUUID .UUID property of CBPeripheral 
     here is null the first time an unkown (never connected before in any app) 
     peripheral is connected. So therefore we connect to all peripherals we find. 
    */ 

    peripheral.delegate = self; 
    [central connectPeripheral:peripheral options:nil]; 

    [self.nDevices addObject:peripheral]; 

} 

से डाउनलोड कर सकते हैं लेकिन यह ध्यान देने योग्य है कि आप भी ऐसा कर सकते हैं देख सकते हैं निम्नलिखित

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 
{ 
    NSLog(@"didDiscoverPeripheral"); 

    if (![foundPeripherals containsObject:peripheral]) { 
     NSLog(@"foundPeripherals addObject %@", peripheral.name); 
     [foundPeripherals addObject:peripheral]; 
    } else { 
     NSInteger index = [foundPeripherals indexOfObject:peripheral]; 
     NSLog(@"foundPeripherals replaceObject %@", peripheral.name); 
     [foundPeripherals replaceObjectAtIndex:index withObject:peripheral]; 
    } 

} 

didDiscoverPeripheral प्रत्येक डिवाइस के लिए एक से अधिक बार कॉल किया जाता है (मुझे इसे आईफोन 5 पर दो बार कहा जाता है) और दूसरी बार परिधीय विवरण पूर्ण हो जाते हैं।

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

  • कोई संबंधित समस्या नहीं^_^