2012-03-07 62 views
18

Cách tốt nhất để ứng dụng Android được cài đặt trên hai thiết bị giao tiếp với nhau là gì? Các thiết bị có thể kết nối trực tiếp mà không cần sử dụng tin nhắn văn bản không?Android - liên lạc giữa hai thiết bị

+0

Android Beam :) Nhưng điều đó chỉ khả dụng trên một số thiết bị mới. –

Trả lời

12

Bạn có thể kết nối chúng qua bluetooth bằng BluetoothSockets. Trang web dành cho nhà phát triển Android có tài liệu khá tốt về điều này.

http://developer.android.com/guide/topics/wireless/bluetooth.html

Hoặc nếu bạn thà (và có internet trên cả hai thiết bị), bạn có thể sử dụng thường xuyên Ổ cắm của.

http://developer.android.com/reference/java/net/ServerSocket.html cho phía máy chủ http://developer.android.com/reference/java/net/Socket.html cho phía khách hàng

Nếu bạn có một lượng lớn dữ liệu để chuyển, ổ cắm internet có một dung lượng dữ liệu lớn hơn và sẽ nhanh hơn. Ưu điểm khác là không có thứ như "ngoài phạm vi". Bạn có thể kết nối hai thiết bị bất cứ nơi nào internet có sẵn, trong khi với bluetooth họ phải nằm trong phạm vi bluetooth của nhau

+0

Xin chào Derek, tôi có một số câu hỏi. Tôi hy vọng bạn sẽ trả lời. Làm thế nào các ứng dụng được cho là để có được địa chỉ IP của máy chủ? và cũng RMI chỉ hoạt động khi cả hai thiết bị sử dụng cùng một mạng, bởi bất kỳ cơ hội là nó giống nhau cho ổ cắm? – Ruturaj

+1

Có phải "Wi-Fi trực tiếp" không phải là một tùy chọn không? – Mick

1

Phụ thuộc vào những gì bạn đang làm. Nếu bạn có một máy chủ, bạn có thể gửi một số tin nhắn đến nó và có nó kéo bởi các thiết bị khác (giả sử cả hai khách hàng đã cài đặt ứng dụng). Tôi nghĩ rằng đây sẽ là cách trực quan nhất (nhưng nó thực sự phụ thuộc vào những gì bạn đang giao tiếp).

Nhắn tin văn bản và email có thể hoạt động nhưng bạn (hoặc người dùng) cần biết số/email được liên kết với thiết bị để thực hiện điều đó.

0

Các android NSD API có nghĩa là để làm điều tương tự bạn đang cố gắng để đạt được! Ví dụ đi kèm với SDK là tự giải thích!

xin vui lòng kiểm tra:

Android NSD API example

14

Bạn có nhiều lựa chọn, tùy thuộc vào yêu cầu và thiết lập của bạn:

  • Nếu thiết bị của bạn đang rất gần nhau (lên đến khoảng 10 mét) , bạn có thể giao tiếp bằng Bluetooth, như Derek đã đề xuất.
  • Nếu thiết bị của bạn hơi xa hơn, nhưng trong phạm vi WiFi của nhau (tối đa khoảng 100 mét), thì họ có thể liên lạc với nhau bằng API WiFi ngang hàng, được ghi lại here (một phần của Android API không dây). Điều này không yêu cầu bộ định tuyến WiFi và các thiết bị sẽ tìm thấy nhau và giao tiếp trực tiếp. Tuy nhiên, điều này yêu cầu Android 4.1 trở lên.
  • API không dây Android cũng sẽ hoạt động nếu thiết bị của bạn nằm trên cùng một mạng cục bộ (ví dụ: sử dụng cùng một bộ định tuyến WiFi), ngay cả khi chúng không nằm trong phạm vi của nhau.
  • Nếu không có tùy chọn nào trong số này có thể thực hiện/được bảo đảm, thì tôi đồng ý với Derek rằng cách dễ nhất là sử dụng ServerSocket và Socket để tạo giao diện máy chủ/máy khách thông qua Internet. Đây là một số sample application.Vấn đề chính bạn có thể gặp phải là nếu máy chủ đang ngồi phía sau NAT (chẳng hạn như bộ định tuyến internet tại nhà), bạn sẽ phải định cấu hình NAT để chuyển tiếp các gói đến tới máy chủ Android của bạn.
0

bạn nên có một cái nhìn tại WifiDirect

Wi-Fi peer-to-peer (P2P) cho phép điều hành Android 4.0 (cấp API 14) hay muộn các thiết bị với phần cứng thích hợp để kết nối trực tiếp đến mỗi khác qua Wi-Fi không có điểm truy cập trung gian.

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