我正在尝试确定android中PPTP VPN接口的名称,因此我可以将其列为我的应用程序中的可绑定接口.由于Android中没有VPN API,我想我可以使用直接Java来查找它.
当我使用标准Java来获取接口列表时,即.
ArrayList<NetworkInterface> allInterfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
Run Code Online (Sandbox Code Playgroud)
我看到一些有趣的东西:
当手机在802.11X Wifi上时
当手机在Verizon Only上时
所以 - 我需要一种方法来消除VZ接口.您可以从Android API获取NetworkInfo对象,如下所示:
ConnectivityManager conMan = (ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] infoList = conMan.getAllNetworkInfo();
Run Code Online (Sandbox Code Playgroud)
该方法存在一些问题:
我看到它的方式有几种方法可以从所有接口列表中消除VZ接口:
不幸的是,看起来这两个选项都不可能,因为名称不匹配,我无法弄清楚如何从Android操作系统获取VZ IP.
那么 - 还有其他人尝试过类似的东西吗?有没有办法问Android操作系统哪些接口有IP地址?
在此先感谢 - 所有的帮助表示赞赏.
担
PS.我试图避免强制用户输入要绑定的有效IP范围(或特定IP).
编辑:这里一种可能的选择是使用 android 本机工具包进行 JNI 系统调用。读取 /dev/ 的目录列表和 ppp* 的 grep。假设第一个是3G/4G连接,后面一个是VPN。
| 归档时间: |
|
| 查看次数: |
6307 次 |
| 最近记录: |