gpt4 book ai didi

android - OnePlus One/Two/Three 上的漫游检测

转载 作者:行者123 更新时间:2023-11-29 19:37:05 25 4
gpt4 key购买 nike

我愿意检测电话上的漫游开关是否关闭。

if (Build.VERSION.SDK_INT < 17) {
isDataRoamingDisabled =
(Settings.System.getInt(context.getContentResolver(), Settings.Secure.DATA_ROAMING, 0)
== 0);
} else {
isDataRoamingDisabled =
(Settings.Global.getInt(context.getContentResolver(), Settings.Global.DATA_ROAMING, 0)
== 0);
}

不幸的是,只有 OnePlus One/Two/Three 设置始终为 false (0)。在我测试的其他设备上——Nexus 6P、LG G5、三星 S5 都运行良好……

telephonyManager.isNetworkRoaming(), 并不是真正的解决方案,因为它会检测用户是否处于漫游状态而不是在设置中切换。

感谢您的帮助! :)

最佳答案

我找到了关于这个问题的一些解决方案..这似乎是由于在这些设备上使用双 SIM 卡造成的,这些设备为此功能采用了较​​新的 API。 (我在 source code of Oxygen 上找到的)

  1. 此解决方案需要READ_PHONE_STATE权限
  2. 访问每个订阅的漫游:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
List<SubscriptionInfo> subscriptions = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
for (SubscriptionInfo subscriptionInfo:subscriptions) {
if (subscriptionInfo.getDataRoaming() == SubscriptionManager.DATA_ROAMING_ENABLE) {
return true;
}
}
return false;
}
  1. 对于其余设备,您可以使用上面指定的解决方案。

关于android - OnePlus One/Two/Three 上的漫游检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39067910/

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