2012-01-19 64 views
5

Trên thiết bị Android của tôi, tôi có cả kết nối Ethernet và Wifi Network.
Những gì tôi muốn thực hiện là tôi muốn kiểm tra xem Wifi và Ethernet cả hai kết nối đang hoạt động cùng một lúc thì tôi có thể tắt mạng Wifi và giữ kết nối Ethernet ON.Giao diện Android với kết nối Ethernet

Tôi đang sử dụng android WifiManager và BroadcastReceiver android.net.conn.CONNECTIVITY_CHANGE để kiểm tra trạng thái Wifi được kết nối/ngắt kết nối và cũng để bật/tắt mạng Wifi.

Nhưng tôi không thể kiểm tra trạng thái kết nối Ethernet và tôi cũng không thể bật/tắt kết nối Ethernet.

Để kiểm tra kết nối Ethernet, tôi đang đọc tệp hệ thống '/ sys/class/net/eth0' đang trả về trạng thái Ethernet đúng. Nhưng để kích hoạt/vô hiệu hóa Ethernet tôi không thể tìm ra cách để thực hiện nó.

Tôi có Tùy chọn kết nối Ethernet trong menu Cài đặt do Android cung cấp, từ đó chúng tôi có thể định cấu hình kết nối Ethernet của thiết bị.

Trong ConnectivityManager có API getActiveNetworkInfo chỉ trả về giao diện mạng kết nối hiện tại, nhưng tôi muốn truy xuất danh sách tất cả các giao diện được kết nối từ nơi chúng tôi có thể kết nối với internet.

Có dịch vụ nào đang chạy trên Android có thể cung cấp cho tôi quyền truy cập để bật/tắt kết nối Ethernet và cũng có API để nhận trạng thái kết nối Ethernet không?

Cảm ơn.

+0

bạn có thể thay đổi trạng thái ethernet và địa chỉ IP không? làm sao? – Smile2Life

+0

Bạn đã bật/tắt kết nối ethernet một cách chuyên nghiệp chưa? Đó là trên thiết bị bắt nguồn từ hoặc có thể với thiết bị không bắt nguồn từ là tốt. – Manmohan

Trả lời

3

Một cách lưu trữ nó,
Trạng thái hiện tại của thiết bị Android được cập nhật trong tệp /sys/class/net/eth0/operstate bởi hệ điều hành Android. Chúng ta cần phải đọc tập tin này để nhận được nhà nước.

Tệp sẽ chứa chuỗi UP nếu Ethernet bị treo khác chuỗi DOWN nếu Ethernet bị hỏng.

Tôi đã thử cách này và nó đang làm việc cho tôi.

Nhưng không chắc liệu nó có hoạt động trên tất cả các thiết bị có tất cả các phiên bản Android hay không.

+0

Bạn đang kết nối với Ethernet bằng cách nào? Bất kỳ mã lệnh nào? @A_user –

+0

Bạn đã xác nhận rằng giá trị ghi trong tệp này sẽ bật/tắt Ethernet không? – Yeung

+0

Chúng tôi không ghi vào tệp này, chúng tôi đọc tệp này để nhận trạng thái hiện tại của Ethernet. Phần viết được thực hiện bởi hệ điều hành. – User7723337

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