2009-06-30 29 views
27

Tôi đang cố gắng tìm hiểu xem iPhone có thể kết nối với thiết bị không phải iPhone khác qua mạng không dây hoặc Bluetooth và đã thấy thông tin xung đột hay không. Phần lớn những gì tôi đã tìm thấy trước khi phiên bản 3.0 của SDK xuất hiện, khi nó chắc chắn là không thể. Nhìn vào Stack   Câu hỏi tràn, như Can the iPhone 3.0 SDK provide full access to Bluetooth devices (headsets)? đề cập đến bạn không thể kết nối với thiết bị tùy ý trừ khi thiết bị đó là một phần của thiết bị "Hoạt động cho iPhone". Tôi có cần phần cứng là một phần của chương trình này không?Làm cách nào để iPhone có thể truy cập vào thiết bị không phải iPhone khác qua mạng không dây hoặc Bluetooth?

Xem qua tài liệu Apple, Peer-to-Peer Connectivity, đề cập đến việc kết nối hai iPhone chứ không phải iPhone đến thiết bị Bluetooth khác. Sau đó, có bài báo như iPhone SDK focus: Bluetooth enhancements bao gồm trích dẫn này

... và với sự mới công bố "hỗ trợ chuẩn" nên cho phép chuyển tập tin giữa iPhone và máy tính, cũng như giữa iPhone lân cận

một stack   Overflow câu hỏi, GameKit in iPhone SDK 3.0, đề cập đến Bonjour, và the Apple documentation for Bonjour cuộc đàm phán về việc kết nối với các thiết bị Bonjour, nhưng một chiếc iPhone có thể kết nối với bất kỳ thiết bị Bonjour? Nó có phải có kết nối Wi-Fi không, hoặc nó có thể sử dụng Bluetooth không?

Thậm chí nếu tôi có thể sử dụng Bluetooth để kết nối với một thiết bị khác, nó sẽ không khả dụng trên iPhone và iTouches thế hệ đầu tiên, tôi tin. Đúng không? Tôi đang nghĩ đến một ứng dụng iPhone cần giao tiếp với các thiết bị không phải iPhone khác trong khu vực, có thể sử dụng Bluetooth, nhưng có thể là kết nối không dây trực tiếp. Những khả năng và hạn chế của phương pháp này là gì? Không thể kết nối iPhone với thiết bị Bluetooth tùy ý? Thiết bị kia có phải trên mạng Bonjour không dây không? Tôi đang cố gắng tìm hiểu xem điều này có thể thực hiện được hay không nếu nó không đáng để nỗ lực.

Trả lời

12

Cách duy nhất để liên lạc với các thiết bị Bluetooth khác thông qua khung External Accessory trong iPhone OS 3.0 là nếu chúng nằm trong chương trình Made for iPod accessory. Mặc dù họ giao tiếp thông qua kết nối Bluetooth chuẩn, phụ kiện cần phần cứng đặc biệt để xử lý luồng dữ liệu đến từ iPhone/iPod touch. Thật không may, điều này có nghĩa là ý tưởng của bạn về giao tiếp với các thiết bị Bluetooth chung sẽ không hoạt động trên iPhone OS 3.0.

Nếu thiết bị bạn muốn trò chuyện là Bonjour có thể khám phá được qua Wi-Fi, chúng không cần phải là một phần của chương trình Được tạo cho iPod. Tuy nhiên, điều đó không có vẻ như trường hợp của bạn.

Nhà phát triển bên thứ ba trong tương lai gần có thể sản xuất thiết bị bảo vệ kết nối thông qua cổng dock 30 chân và cấp quyền truy cập vào các thiết bị Bluetooth hiện có. Nếu các nhà phát triển này mở giao thức truyền thông của họ, điều đó có thể cho phép mục tiêu của bạn giao tiếp với các thiết bị này.

+0

Cảm ơn thông tin - tôi càng đọc nhiều, tôi càng nghĩ rằng Bluetooth sẽ không phải là một lựa chọn khả thi trừ khi các thiết bị có trong chương trình Made for iPod. Đối với Bonjour, iPhone/iTouch có nằm trên mạng không dây để khám phá thiết bị Bonjour không? Có bất kỳ giới hạn phạm vi nào đối với Bonjour hay chỉ là phạm vi mà thiết bị kia có thể phát tới? –

+0

Bonjour chỉ đơn giản là một giao thức khám phá, vì vậy phạm vi của nó là bất kể phạm vi mạng của bạn là bao nhiêu. Nó được thiết kế để sử dụng trên một mạng cục bộ, vì vậy mà khá nhiều có nghĩa là iPhone phải được trên một mạng WiFi. Bản thân các thiết bị có thể được hardwired hoặc kết nối với mạng bằng các phương tiện khác. –

+1

Không, iPhone không phải ở trên mạng wifi: nó sẽ sử dụng * mọi thiết bị mạng có sẵn trên hệ thống - cụ thể là: Bluetooth. Đối với iOS6 trở đi, Apple vô hiệu hóa tìm kiếm BT cho Bonjour theo mặc định (lời giải thích của Apple (lý do) để thực hiện thay đổi đột phá này và hướng dẫn giải pháp chính thức https://developer.apple.com/library/ios/qa/qa1753/_index. html # // apple_ref/doc/uid/DTS40011315) – Adam

1

Bạn có thể sử dụng NSStream để mở các cổng IPv4/IPv6 trên iPhone. Các thiết bị mà bạn đang kết nối không phải là iPhone hoặc phải sử dụng Wi-Fi. Bởi vì các giao thức truyền thông mạng được đặt ra như thế nào, bạn chỉ đơn giản là không phải quan tâm đến loại thiết bị mà iPhone của bạn đang liên lạc.

Bonjour, mặt khác, sử dụng NSStream trong nội bộ. Về cơ bản, nó là một trình bao bọc nhỏ gọn, cho phép tự động khám phá. Bạn cần cài đặt giao thức Bonjour trên tất cả các thiết bị mà bạn muốn tham gia vào quá trình khám phá tự động. Thậm chí còn có một triển khai cho Windows.

+0

Xin lỗi vì nhiều câu hỏi - vấn đề cơ bản là iPhone có thể kết nối với một thiết bị tùy ý. Ví dụ, nếu ứng dụng dùng để đọc đồng hồ điện, tôi muốn có thể đi vào phòng và kết nối với bất kỳ đồng hồ nào mà không biết gì về một đồng hồ cụ thể (Bluetooth ID, địa chỉ IP, v.v.). Có vẻ như có thể với Bonjour (nếu đồng hồ đo hỗ trợ giao thức), nhưng không phải là Bluetooth. Đúng không? Để kết nối với thiết bị Bonjour khác, iPhone có cần trên mạng không dây hoặc được kết nối qua Bluetooth không? Nó không có vẻ như vậy. –

+0

Nếu tôi hiểu chính xác, bạn đang hỏi làm thế nào bạn có thể nhận được một danh sách của tất cả các mét bluetooth trong phạm vi của iphone của bạn? Tôi biết rằng các thiết bị Bluetoth có thể tự động phát hiện lẫn nhau, nhưng tôi không nghĩ rằng họ sử dụng Bonjour (Zeroconf) để làm điều đó. Tôi khá chắc chắn giao thức chính nó là bluetooth cụ thể. Nghe có vẻ như một dự án khá tuyệt vời! –

+0

Bạn có thể muốn đầu tư thời gian vào khung Phụ kiện Ngoài, được phát hành với 3.0 –

0

Là một phần của iPhone OS 3.0 SDK, Apple đã thông báo khả năng kiểm soát các phụ kiện phần cứng thông qua Bluetooth hoặc đầu nối đế. Đầu nối dock hỗ trợ các giao thức chuẩn (tức là, phát, tạm dừng, vv) cũng như bất kỳ giao thức tùy chỉnh nào mà nhà phát triển muốn triển khai.

Theo như kết nối qua Bluetooth, bạn có thể nói chuyện với iPhone hoặc các thiết bị khác. Ví dụ: bạn có thể sử dụng Bluetooth âm thanh nổi để kết nối tai nghe stereo Bluetooth tương thích, bộ phụ kiện trên xe hơi hoặc các phụ kiện khác.

Theo như thiết bị hỗ trợ giao tiếp Bluetooth, mọi thứ ngoại trừ iPod Touch thế hệ đầu tiên sẽ ổn.

Xem thêm Apple's page on iPhone OS accessories.

+1

Đó là tất cả các thiết bị "Được tạo cho iPhone". Đó có phải là cách duy nhất để kết nối với thiết bị Bluetooth không? Ngoài ra, theo [tài liệu của Apple] (http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/GameKit_Guide/GameKitConcepts/GameKitConcepts.html#//apple_ref/doc/uid/TP40008304-CH100- SW1), mạng Bluetooth không được hỗ trợ trên iPhone gốc hoặc iPod Touch thế hệ đầu tiên. Nó cũng không được hỗ trợ trong Trình mô phỏng. –

+0

Liên kết đó với các phụ kiện iPhone OS dường như đã trở nên tồi tệ. – ThomasW

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