2014-04-02 17 views
7

Tôi đã triển khai GCM trong ứng dụng của mình và thông báo đẩy đang hoạt động tốt? Nhưng tôi có yêu cầu cụ thể nơi tôi (máy chủ của tôi) muốn biết về trạng thái thiết bị Android (tức là trực tuyến hoặc ngoại tuyến).Cách nhận Trạng thái thiết bị Android (Ngoại tuyến hoặc Trực tuyến) bằng GCM?

Câu hỏi: 1. Có cách nào để kiểm tra Trạng thái thiết bị Android (Ngoại tuyến hoặc Trực tuyến) bằng cách chỉ gửi tin nhắn GCM hay gì đó không?

  1. Tùy chọn duy nhất trong tâm trí của tôi là "tạo" dịch vụ nền trong thiết bị Android và nó sẽ tạo kết nối ổ cắm đang hoạt động với máy chủ để cập nhật trạng thái trong khoảng thời gian được xác định trước (khoảng 5/10 phút) . Nhưng gộp @ khoảng thời gian sửa lỗi không phải là giải pháp tốt nhất - và đó là lý do tại sao tìm kiếm các giải pháp thay thế khác.

Bất kỳ con trỏ hoặc trợ giúp nào sẽ được đánh giá cao.

Cảm ơn bạn.

Trả lời

-4

Nếu những gì bạn có nghĩa là bạn muốn biết rằng mạng điện thoại của bạn là bật hoặc tắt, sau đó tôi nghĩ rằng mã dưới đây có thể hữu ích cho bạn.

này sẽ cho bạn biết điện thoại của bạn đang ở chế độ Air Plane hay không, có nghĩa là mạng bị tắt hoặc trên.

private static boolean isAirplaneModeOn(Context context) { 

    return Settings.System.getInt(context.getContentResolver(), 
      Settings.System.AIRPLANE_MODE_ON, 0) != 0; 

} 

Kiểm tra mã dưới đây cho biết bạn có bị ngắt kết nối hay không.

private boolean isNetworkConnected() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo ni = cm.getActiveNetworkInfo(); 
    if (ni == null) { 
    // There are no active networks. 
    return false; 
    } else 
    return true; 
} 

trong manifest

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
Các vấn đề liên quan