2014-09-20 16 views
6

Vì vậy, từ việc đọc các tài liệu hướng dẫn CBPeripheralDelegate, dường như RSSIperipheralDidUpdateRSSI:error: đã bị phản đối với iOS 8.iOS 8 CoreBluetooth phản đối phương pháp RSSI

tôi nhận thấy rằng chỉ số cường độ tín hiệu của tôi không còn được cập nhật, vì vậy tôi đã làm một số nghiên cứu và tìm thấy một phương pháp mới ([CBPeripheralDelegate peripheral:didReadRSSI:error:]) được cho là được gọi lại không đồng bộ sau khi gọi phương thức readRSSI. Thật không may, phương pháp này dường như không được gọi lại, mặc dù tôi đã thiết lập lớp cha là đại biểu CBPeripheral.

Có ai khác gặp sự cố với bản cập nhật CoreBluetooth của iOS 8 không?

Trả lời

9

Có một vấn đề đã biết đã được đăng về điều này trên diễn đàn Apple Developer mà tôi cũng có một radar mở.

Sự cố có vẻ là phương thức gọi lại mới peripheral:didReadRSSI:error: không bao giờ được gọi trên iOS 8 cụ thể sau khi kết nối ban đầu được thực hiện cho thiết bị ngoại vi. Độ phân giải duy nhất tôi tìm thấy là đặt lại bluetooth trên điện thoại của bạn bằng cách bật/tắt hoặc bật lại điện thoại.

Here is the link to open radar I filed.

UPDATE:

Chỉ cần kiểm tra ví dụ của tôi đã được trưng bày vấn đề này với phiên bản hiện tại 8.2 và tôi không còn nhìn thấy bất kỳ vấn đề với iOS mới 8 phương pháp đại biểu không bao giờ được gọi. Tôi đang đánh dấu radar của tôi là đã được giải quyết theo bản phát hành 8.2.

+1

Xem sự cố tương tự trên iOS 8.1.3. –

+0

Tôi đã thử nghiệm từng bản phát hành beta và bản phát hành sắp tới có vẻ như đã giải quyết được sự cố này. –

-1

Nó hoạt động trở lại trong iOS 8.0.2!

sử dụng [myPeripheral readRSSI];

1

Ứng dụng này hoạt động iOS 8.0.2, nhưng bây giờ nó đã được điều chỉnh. Tôi gửi một readRSSI mỗi 200ms và nhận được một phản ứng chỉ một lần một giây. Nó hoạt động tốt với iOS 7.1.

5

Trong iOS 8.1.1, peripheral:didReadRSSI:error: sẽ chỉ được gọi cho các thiết bị ngoại vi mà bạn được kết nối. Nếu bạn chỉ đơn thuần phát hiện ra các thiết bị ngoại vi có quét và sau đó được gọi là readRSSI trên chúng, cuộc gọi lại sẽ không được gọi.

Thử kết nối với thiết bị ngoại vi trước (qua CBCentralManager 's connectPeripheral:options:), sau đó gọi readRSSI.

+2

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và sau khi bạn có đủ [danh tiếng] (http://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bài đăng bất kỳ] (http://stackoverflow.com/help/privileges/comment). –

+4

Thực ra nó cung cấp câu trả lời cho câu hỏi. Câu hỏi của anh ta liên quan đến “ngoại vi: didReadRSSI: error:' không được gọi và anh ta hỏi nếu có ai khác có vấn đề với nó. Tôi đã có vấn đề với nó và tôi tìm thấy giải pháp để làm cho CoreBluetooth gọi phương thức đại biểu trong iOS 8: kết nối với thiết bị ngoại vi. –

+0

Điều này sẽ chỉ trả lại thành công khi bạn kết nối với thiết bị ngoại vi và gọi [readRSSI ngoại vi] lần đầu tiên. Mọi kết nối tiếp theo sẽ không gọi phương thức ủy nhiệm didReadRSSI. –

Các vấn đề liên quan