[英]Roaming detection on OnePlus One/Two/Three
我愿意检测电话上的漫游开关是否关闭。
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,该设置始终为假(0)。 在我测试过的其余设备上-Nexus 6P,LG G5,三星S5都可以正常工作...
telephonyManager.isNetworkRoaming(),
在这里并不是真正的解决方案,因为它会检测用户是否在漫游中并且未切换设置。
感谢帮助! :)
我找到了有关此问题的一些解决方案。似乎是由在这些设备上使用Dual SIM引起的,该设备为此功能采用了更新的API。 (我在Oxygen的源代码上找到了它)
READ_PHONE_STATE
权限 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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.