基本信息
源码名称:android 连接 vpn项目源码
源码大小:12.88M
文件格式:.zip
开发语言:Java
更新时间:2016-06-12
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
package com.example.testsvsdklib; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.util.ArrayList; import java.util.HashMap; import topsec.sslvpn.svsdklib.SVSDKLib; public class TestSVSDKLib extends Activity implements OnClickListener { private static final String TAG = "TestSVSDKLib"; public static final int VPN_MSG_STATUS_UPDATE = 100; // public static final int QUERY_VPN_MSG_STATUS_UPDATE = 101; // private final String VPN_SERVER = ""; private final int VPN_PORT = 443; private final String VPN_USERNAME = ""; private final String VPN_PASSWORD = ""; private Dialog mShowingDialog; public Handler MsgHandler = new Handler() { // ��������message,�÷����ɸ����н��м̳�. @Override public void handleMessage(Message msg) { int msgID = msg.what; Bundle bundle = (Bundle) msg.obj; switch (msg.what) { case VPN_MSG_STATUS_UPDATE: // VPN�ⷢ����Ϣ���� { if (null != bundle) { String vpnStatus = bundle.getString("vpnstatus"); String vpnErr = bundle.getString("vpnerror"); if (vpnStatus.equalsIgnoreCase("6")) { // VPN��������ɹ� Log.i(TAG, "VPN����Ϣ֪ͨ��VPN��������ɹ�"); // http://127.0.0.1:30080/cctv2/Jhsoft.mobileapp/login/loginbyurl.html?userName=trx&pwd=111111 Toast.makeText(TestSVSDKLib.this, "VPN����Ϣ֪ͨ��VPN��������ɹ�", Toast.LENGTH_SHORT).show(); } if (vpnStatus.equalsIgnoreCase("200")) { Toast.makeText(TestSVSDKLib.this, "VPN����Ϣ֪ͨ��VPN�����ʱ", Toast.LENGTH_SHORT).show(); } if (!vpnErr.equalsIgnoreCase("0")) { if (vpnErr.equalsIgnoreCase("10")) { Log.i(TAG, "VPN����Ϣ֪ͨ��VPN��Ҫ���µ�½������ʾ�û�����ѡ���Ƿ��߳���һ���û���������ǿ���߳���һ���û�"); SVSDKLib vpnlib = SVSDKLib.getInstance(); vpnlib.reLoginVPN(); } else { // VPN����������� Toast.makeText(TestSVSDKLib.this, "VPN����Ϣ֪ͨ����ǰVPN����Ϊ��" vpnErr, Toast.LENGTH_SHORT).show(); } } } } break; case QUERY_VPN_MSG_STATUS_UPDATE: // ��ѯ�߳���Ϣ���� { if (null != bundle) { String vpnStatus = bundle.getString("vpnstatus"); String vpnErr = bundle.getString("vpnerror"); if (vpnStatus.equalsIgnoreCase("6")) { // VPN��������ɹ� Toast.makeText(TestSVSDKLib.this, "��ѯ�߳�֪ͨ��VPN��������ɹ�", Toast.LENGTH_SHORT).show(); } if (!vpnErr.equalsIgnoreCase("0")) { // VPN����������� Toast.makeText(TestSVSDKLib.this, "��ѯ�߳�֪ͨ����ǰVPN����Ϊ��" vpnErr, Toast.LENGTH_SHORT) .show(); } } } break; } super.handleMessage(msg); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findviewByid(); InitSVSDKLib(); } private void findviewByid() { Button btnStart = (Button) findViewById(R.id.BTN_START); Button btnStop = (Button) findViewById(R.id.BTN_STOP); Button btnConnectSvr = (Button) findViewById(R.id.BTN_GETVPNSTATUS); btnStart.setOnClickListener(this); btnStop.setOnClickListener(this); btnConnectSvr.setOnClickListener(this); } // ��ʼ��VPN�� private void InitSVSDKLib() { SVSDKLib vpnlib = SVSDKLib.getInstance(); Context appContext = getApplicationContext(); vpnlib.setSVClientPath(appContext.getFilesDir().getPath()); vpnlib.setAppam(this.getAssets()); vpnlib.setMsgHandler(MsgHandler); vpnlib.setVPNMsgID(VPN_MSG_STATUS_UPDATE); vpnlib.setVPNInfo(VPN_SERVER, VPN_PORT, VPN_USERNAME, VPN_PASSWORD); vpnlib.prepareVPNSettings(); Log.i(TAG, "InitSVSDKLib done"); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.BTN_START: { doStart(); break; } case R.id.BTN_STOP: { doStop(); break; } case R.id.BTN_GETVPNSTATUS: { doGetVPNStatus(); break; } } } private void showErrorDialog(String sErrInfo) { mShowingDialog = new AlertDialog.Builder(this).setTitle("����") .setIcon(android.R.drawable.ic_dialog_alert) .setMessage(sErrInfo) .setPositiveButton("ȷ��", new DialogInterface.OnClickListener() { public void onClick(DialogInterface arg0, int arg1) { return; } }).create(); mShowingDialog.show(); return; } // ����VPN���� private void doStart() { SVSDKLib vpnlib = SVSDKLib.getInstance(); EditText edtIP = (EditText) findViewById(R.id.edtip); EditText edtPort = (EditText) findViewById(R.id.edtport); EditText edtUname = (EditText) findViewById(R.id.edtuname); EditText edtUpwd = (EditText) findViewById(R.id.edtupwd); String sIP, sUname, sUpwd; int port; sIP = edtIP.getText().toString(); sUname = edtUname.getText().toString(); sUpwd = edtUpwd.getText().toString(); if (sIP == null || sIP.length() == 0) { showErrorDialog("VPN ip不能为空"); return; } try { port = Integer.parseInt(edtPort.getText().toString()); } catch (NumberFormatException e) { showErrorDialog("VPN�˿���Ч��Χ��1-65535"); return; } if ((port <= 0) || (port > 65535)) { showErrorDialog("VPN 端口不能为空"); return; } if (sUname == null || sUname.length() == 0) { showErrorDialog("帐号不能为空"); return; } if (sUpwd == null || sUpwd.length() == 0) { showErrorDialog("密码不能为空"); return; } // vpnlib.setVPNInfo("192.168.95.84", 443, "1", "111111"); vpnlib.setVPNInfo(sIP, port, sUname, sUpwd); Log.i("ttt", "ip= " sIP " port= " port " uname= " sUname); vpnlib.prepareVPNSettings(); vpnlib.stopVPN(); vpnlib.startVPN(); } // �ر�VPN���� private void doStop() { // ֹͣVPN���� SVSDKLib vpnlib = SVSDKLib.getInstance(); vpnlib.stopVPN(); } // ��ȡVPN״̬ private void doGetVPNStatus() { String sVPNStatus; SVSDKLib vpnlib = SVSDKLib.getInstance(); sVPNStatus = vpnlib.getVPNStatus(); Toast.makeText(TestSVSDKLib.this, "vpn状态:" sVPNStatus, Toast.LENGTH_SHORT).show(); ArrayList<HashMap<String, String>> reslist = vpnlib.getResList(); } // VPN״̬��ѯ�߳� // private class GetVPNStatusThread extends Thread { // // @Override // public void run() { // String sVPNStatus; // String sVPNErr; // SVSDKLib vpnlib = SVSDKLib.getInstance(); // // int nTimeOut = 10; // ��ʱʱ�䣬10�� // int nTimeStep = 0; // // try { // while (nTimeStep < nTimeOut) { // sVPNStatus = vpnlib.getVPNStatus(); // sVPNErr = vpnlib.getVPNError(); // if (sVPNStatus.equalsIgnoreCase("6")) { // // ֪ͨ������VPN���ӳɹ� // Message msg = Message.obtain(MsgHandler); // msg.what = QUERY_VPN_MSG_STATUS_UPDATE; // // sVPNStatus = "6"; // // Bundle bundle = new Bundle(); // bundle.putString("vpnerror", sVPNErr); // bundle.putString("vpnstatus", sVPNStatus); // // msg.obj = bundle; // msg.sendToTarget(); // break; // } // // if (!sVPNErr.equalsIgnoreCase("0")) { // // ֪ͨ������VPN���ӳ����� // Message msg = Message.obtain(MsgHandler); // msg.what = QUERY_VPN_MSG_STATUS_UPDATE; // // Bundle bundle = new Bundle(); // bundle.putString("vpnerror", sVPNErr); // bundle.putString("vpnstatus", sVPNStatus); // // // // msg.sendToTarget(); // msg.obj = bundle; // break; // } // // } // Thread.sleep(1000); // nTimeStep ; // // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // return; // } // } }