Tom*_*Pax 3 vpn android android-5.0-lollipop
我的问题很简单,Android支持以编程方式检查VPN是否处于活动状态(在API 21+上),请参阅:http : //developer.android.com/reference/android/net/ConnectivityManager.html#TYPE_VPN
我以为我知道它应该如何工作,但是可以使用roboguice进行编码:
@Inject
boolean checkVPN(ConnectivityManager connMgr) {
//don't know why always returns null:
NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_VPN);
boolean isVpnConn = networkInfo == null ? false : networkInfo.isConnected();
return isVpnConn;
}
Run Code Online (Sandbox Code Playgroud)
始终返回null。适用于WIFI或手机。
是虫子吗?还是我做错了什么?还是我误会了它应该如何工作?
小智 5
NetworkCapabilities将适用于API 21+。您必须遍历所有现有网络并检查哪个VPN_TRANSPORT
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
Network[] networks = cm.getAllNetworks();
Log.i(TAG, "Network count: " + networks.length);
for(int i = 0; i < networks.length; i++) {
NetworkCapabilities caps = cm.getNetworkCapabilities(networks[i]);
Log.i(TAG, "Network " + i + ": " + networks[i].toString());
Log.i(TAG, "VPN transport is: " + caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN));
Log.i(TAG, "NOT_VPN capability is: " + caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |