android - 如何在双卡安卓手机中获取连接到互联网的运营商名称?

标签 android android-networking

我制作了一个网络监控应用程序。在这里我已经成功地实现了所有的东西。我有双卡安卓手机。我知道如何获取运算符(operator)的姓名。但我想要哪个 sim 连接到互联网?我使用此代码只是为了向用户显示该设备是通过移动数据连接的。我想更具体地说明该设备当前正在使用哪个运营商的互联网。

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";
    }

最佳答案

在 API 22 之前没有关于多个 sims 的 API。您可以联系您的设备制造商并检查他们是否有 SDK 附加组件来访问多个 sims。

从 API 22 开始,您可以使用 SubscriptionManager 的方法 getActiveSubscriptionInfoList() 检查多个 SIM。有关 Android 文档的更多详细信息。

请看multiple sims .这里有一些关于multiple的讨论,希望这可以帮助您找到访问多个sim网络的方法。

关于android - 如何在双卡安卓手机中获取连接到互联网的运营商名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32993283/

相关文章:

android - 在 drawable xml 中应用样式资源

java - Dagger 2 : Provide same instance between multiple Component with same Scope on different library modules

android - 网络可用性检查返回 false 但电话在线

android - 如何使用 Retrofit 发送带值的 Hashmap

android - javax.net.ssl.SSLHandshakeException : java. lang.IllegalArgumentException : Invalid input to toASCII: ip_nbae7bac35. kodrive.xyz

android - 使用JSch从Android上的SFTP文件传输进行慢速传输

android - 使用 volley 注册时出现 com.android.volley.VolleyError : java. lang.NullPointerException 错误

android - 如何获得Soundpool的持续时间

android - 尝试在空对象引用上调用虚拟方法 'boolean java.lang.String.isEmpty()'

java - 安卓蓝牙文件传输失败