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

相关推荐
Rainman博1 小时前
WMS-窗口relayout&FinishDrawing
android
baidu_247438613 小时前
Android ViewModel定时任务
android·开发语言·javascript
有位神秘人4 小时前
Android中Notification的使用详解
android·java·javascript
·云扬·4 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
独自破碎E5 小时前
【BISHI9】田忌赛马
android·java·开发语言
代码s贝多芬的音符6 小时前
android 两个人脸对比 mlkit
android
darkb1rd8 小时前
五、PHP类型转换与类型安全
android·安全·php
gjxDaniel8 小时前
Kotlin编程语言入门与常见问题
android·开发语言·kotlin
csj508 小时前
安卓基础之《(22)—高级控件(4)碎片Fragment》
android
峥嵘life9 小时前
Android16 【CTS】CtsMediaCodecTestCases等一些列Media测试存在Failed项
android·linux·学习