我有两个使用VpnService类的应用程序.但是一次只能运行一个VPN连接.创建新接口时,现有接口将被停用,我希望新应用程序不要启动vpnservice以避免旧接口被停用及其VPN连接.因此,我想在调用startService()之前检查是否已启动另一个vpnservice.
有没有API可以做到这一点?
解决方法:
据我所知您不能直接检查.以下是我在应用程序中用于检查VPN连接的方法.
1)拨打http://jsonip.com的httpGet调用
public static String GetDeviceIp(){ httpGet req = new httpGet("http://Jsonip.com"); DefaulthttpClIEnt httpClIEnt = new DefaulthttpClIEnt(); httpResponse response = httpClIEnt.execute(req); if (response.getStatusline().getStatusCode() == 200){ ipaddress=parseJson(response.getEntity().getContent()); }else { ipaddress ="EMPTY" } return ipaddress }
2)解析Json响应并从响应中提取IP地址
public static String parseJson(inputStream in) { String iP; try{ String result; BufferedReader bufferedReader = new BufferedReader(new inputStreamReader(in, "UTF-8"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = bufferedReader.readline()) != null) { sb.append(line + "\n"); } result = sb.toString(); JsONObject JsonObject = new JsONObject(result); iP=JsonObject.getString("ip"); }catch (Exception e){ iP="EMPTY"; } return iP; }
3)比较VPN服务器Ip和提取的Ip是否相等,如果是,则VPN打开,否则VPN关闭
public static boolean IsVPNON(){ return GetDeviceIp().equals("VPN-IP address");}
总结 以上是内存溢出为你收集整理的Android VpnService-如何检查VpnService是否已启动?全部内容,希望文章能够帮你解决Android VpnService-如何检查VpnService是否已启动?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)