[英]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.