gpt4 book ai didi

android - 检查数据连接是否为 "ticked"

转载 作者:行者123 更新时间:2023-11-29 17:59:32 25 4
gpt4 key购买 nike

我正在构建一个 android 应用程序,它将使用 Switch 小部件来启用/禁用设备的数据连接。

我的问题实际上是数据漫游:如果用户禁用了数据连接漫游,那么 API 方法如 NetworkInfo.isConnectedOrConnecting()TelephoneManager.getDataState() 会说连接已关闭。

一般来说这是正确的,但在我的上下文中这是错误的如果数据连接是从 android 设置中“勾选”的

所以,我需要一种方法来检查数据连接是否被勾选,而不是启用/Activity/等等。

有什么想法吗?

最佳答案

定义“mobile_data”行名称,系统在本地存储数据连接复选框/开关的状态:

private static final String MOBILE_DATA = "mobile_data";

然后检查该行的值是否为 0。如果它是0,则数据连接未选中/禁用(未勾选):

private boolean isMobileDataChecked() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
// The row has been moved to 'global' table in API level 17
return Settings.Global.getInt(getContentResolver(), MOBILE_DATA, 0) != 0;
}

try {
// It was in 'secure' table before
int enabled = Settings.Secure.getInt(getContentResolver(), MOBILE_DATA);
return enabled != 0;
} catch (SettingNotFoundException e) {
// It was in 'system' table originally, but I don't remember when that was the case.
// So, probably, you won't need all these try/catches.
// But, hey, it is better to be safe than sorry :)
return Settings.System.getInt(getContentResolver(), MOBILE_DATA, 0) != 0;
}
}

关于android - 检查数据连接是否为 "ticked",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17020726/

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