java - 如何知道Android手机上是否启用了数据保护程序
问题描述
我知道有一些与此类似的问题,
ConnectionManager.getRestrictBackgroundStatus()
会告诉我是否为我的应用禁用了后台数据。
对于我的用例,我想具体了解是否为所有应用启用了数据保护程序
设置->dataSaver->restrictBackgroundData
或特定应用后台数据被禁用
app_Name->Info->Network->disable_backgroundData
ConnectionManager.getRestrictBackgroundStatus()
在这两种情况下都会给我相同的答案,我怎么知道启用了哪个特定设置?
解决方案
由于 Android Lollipop 我们有 isPowerSaveMode() ,这里是示例-
PowerManager powerManager = (PowerManager)
getActivity().getSystemService(Context.POWER_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
&& powerManager.isPowerSaveMode()) {
// Animations are disabled in power save mode, so just show a toast instead.
Toast.makeText(mContext, getString(R.string.toast), Toast.LENGTH_SHORT).show();
}
推荐阅读
- firebase - 我可以在 Firebase 应用服务器中同时创建的最大应用实例数是多少
- vue.js - WebpackChunkName 使用当前工作目录而不是 web 根目录
- java - 如何在使用工厂/策略模式(在运行时创建)创建的对象中使用 @Autowired 服务?
- c# - 当我发送超过过期日期的令牌时,为什么会收到 401 错误?
- java - 如何使用 jberet-ui 创建基于日历的日程安排?
- model-view-controller - MVC5 Outputcache 没有按照文档工作
- c++ - 如何在 C++ 中划分高精度抽象数据类型?
- python - 如何展平包含值中的列表和字典的嵌套字典并将其导出为电子表格
- sql-server - 动态创建不同行的列表,然后旋转?
- directus - 通过 Javascript SDK 6.1.1 连接