Android随笔-VPN判断

Android中判断当前网络是否为VPN

java 复制代码
    /**
     * 判断当前网络是否为VPN
     * @param context
     * @return
     */
    public static boolean hasVPN(Context context) {
        // 查询网络状态,被动监听网络状态变化
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        // 获取当前来凝结网络
        Network currentNetwork = cm.getActiveNetwork();
        // 获取当前网络能力
        NetworkCapabilities networkCapabilities = cm.getNetworkCapabilities(currentNetwork);
        // 是否是VPN端口
        return networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN) && networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
        // 是否为wifi
//        return networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) && networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
        // 是否为蜂窝网络
//        return networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) && networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
    }
  • VPN
java 复制代码
networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)
  • WIFI
java 复制代码
networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI_AWARE);
  • 蜂窝
java 复制代码
networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET);

其他读取网络状态可查考- Android网络状态读取

相关推荐
2501_9159214322 分钟前
iOS 应用代上架流程,多工具组合与使用 开心上架 跨平台自动化上传指南
android·ios·小程序·uni-app·自动化·cocoa·iphone
日日行不惧千万里27 分钟前
2025最新仿默往 IM 即时通讯系统源码(PC + Web + iOS + Android)完整版发布!
android·ios
歪歪10028 分钟前
React Native开发Android&IOS流程完整指南
android·开发语言·前端·react native·ios·前端框架
雪芽蓝域zzs33 分钟前
uniapp 修改android包名
android·uni-app
用户2018792831671 小时前
厨房里的协程大冒险:launch与async的烹饪之旅
android
用户2018792831671 小时前
浅析协程与挂起函数实现原理
android
木易士心2 小时前
Android Handler 机制原理详解
android·app
用户2018792831672 小时前
CoroutineDispatcher的"自由精灵" - Dispatchers.Unconfined
android
用户2018792831672 小时前
用 “奶茶连锁店的部门分工” 理解各种 CoroutineScope
android
黄额很兰寿2 小时前
深入源码理解LiveData的实现原理
android