我正在开发一款网络监控应用。目前,我已成功实现了从wifi或移动数据跟踪数据使用情况等所有功能,但我想知道哪张SIM卡连接到了互联网并消耗了移动数据。
使用下面的代码,我可以知道我的双卡手机是否连接到了wifi或移动数据。
public static String isInternetConnected (Context ctx) {
ConnectivityManager connectivityMgr = (ConnectivityManager) ctx
.getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo wifi = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
// Check if wifi or mobile network is available or not. If any of them is
// available or connected then it will return true, otherwise false;
if (wifi != null) {
if (wifi.isConnected()) {
return "wifi";
}
}
if (mobile != null) {
if (mobile.isConnected()) {
return "mobile";
}
}
return "none";
}
如何在双卡 Android 手机上获取使用移动数据的 SIM 索引或运营商名称?
我已经搜索了很多并看到了很多问题发布在 SO 上,但没有答案,例如这个。
我能够在双卡手机中获取两个 SIM 的 subId,但是我遇到了一个问题,那就是不知道哪个 SIM 正在使用互联网。
许多其他应用程序都可以做到这一点,例如 Mubble。
有人能提供解决方案吗?