gpt4 book ai didi

android - 有没有办法知道是否启用了 Data Saver?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:46 27 4
gpt4 key购买 nike

Android 7.0 Nougat 添加了 Data Saver 功能,允许用户限制某些应用程序(包括推送通知)的后台数据。当 Data Saver 开启时,只有在

中找到的列表中的应用程序

Settings → Data Saver → Unrestricted data access

允许接收推送通知和执行后台网络调用。如果 Data Saver 关闭并且您的应用程序不在不受限制的列表中,这几乎就像设置禁用推送通知一样。

我的应用中有一个用例,它正在等待推送通知的到来。

我想知道是否有一种方法可以查明是否启用了 Data Saver 以及我的应用程序是否在“不受限制的数据访问”列表中以了解是否为我的应用程序启用了推送通知以及因此是否有意义等待推送并有机会在应用程序在特定时间处于后台时执行任何网络调用。

最佳答案

可以通过 ConnectivityManager.getRestrictBackgroundStatus()

检查 Data Saver 是否已启用以及您的应用是否已列入白名单
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;
}
}

如果启用了 Data Saver 并且您的应用未列入白名单,则只有当您的应用在前台时才会发送推送通知。

您还可以检查 ConnectivityManager.isActiveNetworkMetered() 是否应该限制数据使用,无论 Data Saver 是否启用或禁用,或者您的应用是否已列入白名单。

完整示例 in the docs您还可以在其中了解如何请求白名单权限以及收听对 Data Saver 首选项的更改。

关于android - 有没有办法知道是否启用了 Data Saver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43390930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com