2017-04-13 3 views
2

Android 7.0 Nougat은 사용자가 푸시 알림을 포함한 특정 앱의 백그라운드 데이터를 제한 할 수있는 데이터 세이버 기능을 추가했습니다. 데이터 세이버가 ON 인 경우, 목록에있는 유일한 애플 리케이션은데이터 세이버가 활성화되었는지 알 수있는 방법이 있습니까?

설정 → 데이터 세이버 →

가 푸시 알림을 수신 및 배경 네트워크 호출을 실행할 수 있습니다 무제한 데이터 액세스에서 발견. 데이터 세이버가 꺼져 있고 앱이 제한되지 않은 목록에없는 경우 푸시 알림을 사용 중지하는 것과 거의 같습니다.

내 앱에서 푸시 알림을 기다리는 유스 케이스가 있습니다.

Data Saver가 사용 설정되어 있는지, 내 앱이 내 앱에 푸시 알림을 사용할 수 있는지 알기 위해 내 앱이 'Unrestricted data access'목록에있는 경우 잠재적으로 알 수있는 방법이 있는지 궁금합니다. 푸시를 기다리는 중이고 앱이 특정 시간에 백그라운드에있는 동안 네트워크 호출을 실행할 수 있습니다. 데이터 세이버가 활성화되고 앱이 앱이있는 경우에만 제공됩니다 푸시 알림을 허용 목록에 포함되지 않은 경우 데이터 세이버가 활성화되는 경우 앱이 허용 된 경우 확인

답변

2

ConnectivityManager.getRestrictBackgroundStatus()

public boolean checkBackgroundDataRestricted() { 
    ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

    switch (connMgr.getRestrictBackgroundStatus()) { 
    case RESTRICT_BACKGROUND_STATUS_ENABLED: 
    // Background data usage and push notifications are blocked for this app 
    return true; 

    case RESTRICT_BACKGROUND_STATUS_WHITELISTED: 
    case RESTRICT_BACKGROUND_STATUS_DISABLED: 
    // Data Saver is disabled or the app is whitelisted 
    return false; 
    } 
} 

를 통해 가능하다 전경.

데이터 세이버 사용 여부에 관계없이 또는 앱이 허용 목록에 상관없이 데이터 사용을 제한해야하는 경우 ConnectivityManager.isActiveNetworkMetered()을 확인할 수도 있습니다.

전체 예제 in the docs 허용 목록 요청 권한을 요청하고 데이터 세이버 환경 설정 변경 사항을 수신하는 방법을 배울 수 있습니다.

관련 문제