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网络状态读取

相关推荐
愤怒的代码6 分钟前
🔗 深度解析 SystemUI 进程间通信机制(一)
android·操作系统·app
RainyJiang1 小时前
聊聊协程里的 Semaphore:别让协程挤爆门口
android·kotlin
Dev7z2 小时前
在MySQL里创建数据库
android·数据库·mysql
invicinble3 小时前
mysql建立存数据的表(一)
android·数据库·mysql
似霰4 小时前
传统 Hal 开发笔记1----传统 HAL简介
android·hal
Zender Han4 小时前
Flutter Gradients 全面指南:原理、类型与实战使用
android·flutter·ios
火柴就是我5 小时前
Flutter Path.computeMetrics() 的使用注意点
android·flutter
モンキー・D・小菜鸡儿6 小时前
Android 系统TTS(文字转语音)解析
android·tts
2501_915909066 小时前
iOS 反编译防护工具全景解析 从底层符号到资源层的多维安全体系
android·安全·ios·小程序·uni-app·iphone·webview
Swizard6 小时前
速度与激情:Android Python + CameraX 零拷贝实时推理指南
android·python·ai·移动开发