2011-02-03 5 views
15

Có cách nào để gỡ lỗi chế độ trên máy bay trên thiết bị không? Tôi đã thử bật chế độ trên máy bay trong cài đặt thiết bị và tắt kết nối internet trên máy tính của mình, nhưng NetworkInterface.GetIsNetworkAvailable() vẫn trả về giá trị true. Tôi có làm điều gì sai?WP7 Cách gỡ lỗi chế độ trên máy bay trên thiết bị?

Trả lời

7

Thông báo bình luận trên dưới cùng của official doc:

API này sẽ luôn luôn trở thành sự thật trên Windows Phone 7 giả lập. Kiểm tra do đó yêu cầu mặt tiền, mô hình hoặc đoạn mã có điều kiện.

Tôi vừa thử nghiệm điều này trên thiết bị thực tế và thực sự, nó trả về hằng số true.

Tuy nhiên, vấn đề là - đó là tất cả vì bạn giữ điện thoại kết nối với PC và giao diện Ethernet khả dụng. Khi bạn ngắt kết nối điện thoại và khởi động ứng dụng, bạn sẽ thấy rằng một False sẽ được trả lại.

+0

Mặc dù nó cũng trả về true trên thiết bị (không giả lập) khi gỡ lỗi. – CACuzcatlan

+0

Thông báo chỉnh sửa của tôi - ngắt kết nối điện thoại khỏi PC để kiểm tra khả năng. –

+1

Để biết ví dụ về giao diện như vậy, hãy kiểm tra NetworkStatusProvider từ ứng dụng Tin tức Liên hợp quốc WP7 @ http://unitednations.codeplex.com/SourceControl/changeset/view/70986#1461137 – JustinAngel

2

Có thể WiFi và/hoặc Bluetooth không bị tắt. Điều này có thể làm cho GetIsNetworkAvailable() trả về giá trị true. Theo this page:

Trong khi bạn đang ở chế độ Airplane, bạn có thể vẫn biến của điện thoại Wi-Fi và Bluetooth và tắt riêng.

Có thể giả định thiết bị đang tạo ra là bạn có thể chỉ muốn tự động bật truy cập Cellular và Bluetooth/WiFi riêng.

+0

Chế độ trên máy bay đang bật, wi-fi và bluetooth bị tắt, Internet của máy tính (wi-fi và ethernet) bị vô hiệu hóa, nhưng GetIsNetworkAvailable() vẫn trả về giá trị true. – CACuzcatlan

+0

vì có thể GetIsNetworkAvailable() không kiểm tra xem bạn có internet hay không, nó chỉ kiểm tra xem điện thoại có được kết nối không. –

+0

Đã kết nối với những gì? Theo MSDN, phương thức trả về "true nếu kết nối mạng có sẵn; ngược lại, sai." Nếu không có kết nối internet, nó sẽ trả về false, và nó hoạt động như mong đợi khi tôi không gỡ lỗi trên thiết bị. – CACuzcatlan

1

Bạn có thể kiểm tra những loại giao diện có sẵn: NetworkInterfaceType

NetworkInterfaceType.MobileBroadbandCdma: 
NetworkInterfaceType.MobileBroadbandGsm 

Những nên được vô hiệu hóa.

+0

NetworkInterface.NetworkInterfaceType là "None" nhưng NetworkInterface.GetIsNetworkAvailable() vẫn trả về true. – CACuzcatlan

+0

để sử dụng phương pháp này. Nó nhận được nhiều chi tiết hơn. –

+0

Đó chỉ là enums, không phải phương pháp/thuộc tính – CACuzcatlan