在Android中获取网络类型,而无需询问权限

时间:2017-02-10 15:13:56

标签: java android

我需要获取用户的连接类型,而不需要请求权限。 (内部应用程序)

目前我正在使用它:

public static String getNetworkType() {

        int networkType = Application.getPhoneManager().getNetworkType();
        switch (networkType) {
            case TelephonyManager.NETWORK_TYPE_IWLAN:
                return "Wlan";
            case TelephonyManager.NETWORK_TYPE_GPRS:
            case TelephonyManager.NETWORK_TYPE_EDGE:
            case TelephonyManager.NETWORK_TYPE_CDMA:
            case TelephonyManager.NETWORK_TYPE_1xRTT:
            case TelephonyManager.NETWORK_TYPE_IDEN:
                return "2g / GPRS";
            case TelephonyManager.NETWORK_TYPE_UMTS:
            case TelephonyManager.NETWORK_TYPE_EVDO_0:
            case TelephonyManager.NETWORK_TYPE_EVDO_A:
            case TelephonyManager.NETWORK_TYPE_HSDPA:
            case TelephonyManager.NETWORK_TYPE_HSUPA:
            case TelephonyManager.NETWORK_TYPE_HSPA:
            case TelephonyManager.NETWORK_TYPE_EVDO_B:
            case TelephonyManager.NETWORK_TYPE_EHRPD:
            case TelephonyManager.NETWORK_TYPE_HSPAP:
                return "3g";
            case TelephonyManager.NETWORK_TYPE_LTE:
                return "LTE";
            default:
                return "Notfound";
        }
    }

但是这不能检测用户是否在wifi上。如果用户在wifi上,则返回LTE。如果用户关闭wifi并检查3g网络,它就可以工作。

有人可以解释如何在没有获得许可的情况下检查用户是否在wifi上吗?

0 个答案:

没有答案