2017-04-13 5 views
2

Android 7.0 Nougatには、特定のアプリのバックグラウンドデータ(プッシュ通知を含む)を制限できるデータセーバー機能が追加されています。データセーバーをオンにすると、Data Saverが有効になっているかどうかを知る方法はありますか?

設定→データセーバー→無制限のデータアクセス

で見つかったリスト上の唯一のアプリはプッシュ通知を受信して​​、バックグラウンドネットワーク呼び出しを実行することが許可されています。 データセーバーがオフで、アプリが制限のないリストにない場合は、プッシュ通知を無効に設定するのとほぼ同じです。

私のアプリにはプッシュ通知が来るのを待っているユースケースがあります。

データセーバーが有効になっているかどうかを確認する方法があるかどうか、アプリがプッシュ通知が有効になっているかどうかを知るためにアプリが「制限のないデータアクセス」リストにある可能性があります特定の時間にアプリがバックグラウンドにいる間にプッシュを待っていて、ネットワークコールを実行する機会があります。データセーバーが有効になっていると、アプリがあなたのアプリケーションが入っている場合にのみ配信されます、プッシュ通知をホワイトリストに登録されていない場合は、データセーバーが有効になっている場合は、アプリをホワイトリストに登録されたかどうかの確認

答えて

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ホワイトリストのアクセス許可を要求し、データセーバー環境設定の変更を聞く方法も学習できます。

関連する問題