2012-02-27 10 views
45

Trong tab Permissions của Android Manifest, trong danh sách thả xuống có những lựa chọn gọi android.permission.ACCESS_NETWORK_STATEandroid.permission.ACCESS_WIFI_STATE. sự khác biệt giữa chúng là gì? Có phải ACCESS_NETWORK_STATE được khái quát hóa hơn ACCESS_WIFI_STATE không?sự khác biệt giữa tình trạng truy cập mạng (ACCESS_NETWORK_STATE) và (ACCESS_WIFI_STATE) cho phép nhà nước WIFI là gì?

Cảm ơn.

Trả lời

34

android.permission.ACCESS_NETWORK_STATE là cần thiết để truy cập ConnectivityManager (chủ yếu là cho các kết nối mạng giám sát nói chung), trong khi android.permission.ACCESS_WIFI_STATE cấp quyền truy cập vào WifiManager (để quản lý tất cả các khía cạnh của khả năng kết nối Wi-Fi ở cụ thể).

+2

Vì vậy, nếu tôi sử dụng ACCESS_NETWORK_STATE và kiểm tra kết nối: nếu trên WiFi nó sẽ trở lại trực tuyến hoặc ngoại tuyến? Tôi có cần kiểm tra cả hai không? – shkschneider

+3

Xem http://developer.android.com/training/basics/network-ops/managing.html cho một chức năng hữu ích (isOnline) mà nói cho dù có một kết nối internet ở tất cả. –

1

trạng thái mạng đề cập đến khả năng kết nối mạng di động.

bang Wifi đề cập đến tình trạng kết nối Wifi của điện thoại.

+3

Không chính xác, xem http://developer.android.com/training/basics/network-ops/managing.html mà nó sử dụng 'tình trạng mạng' để đề cập đến bất kỳ kết nối Internet bất kể loại. Nó phân biệt giữa ConnectivityManager.TYPE_MOBILE và ConnectivityManager.TYPE_WIFI. Nó thậm chí còn cung cấp mã ví dụ cho hàm hữu ích (isOnline) cho biết liệu có kết nối internet hay không. –