//多网聚合SDKimplementation 'com.tencent.linkboost:mpacc:2.9.4'
dependencies {//添加 SDK 依赖implementation fileTree(dir: 'libs', include: ['*.aar'])//添加gson依赖implementation 'com.google.code.gson:gson:2.8.9'//添加加密库依赖implementation 'androidx.security:security-crypto:1.0.0'}
//Context 为ApplicationContext,env:int值,0 为国内站,1 国际站MpAccRegister.setEnv(context, env);
private void initMpAcc() {//腾讯云申请的datakey需传入(此处使用按设备接入)MpAccClient.setDataKey("test-123456", "*");mpAccClient = MpAccClient.getInstance(this);}
private void startAcc() {try {mpAccClient.registerAccCallback(accCallback);//vpn加速需要用户授权Intent vpnIntent = MpAccClient.prepare(this);if (vpnIntent != null) {startActivityForResult(vpnIntent,VPN_REQUEST_CODE);} else {onActivityResult(VPN_REQUEST_CODE, RESULT_OK,null);}} catch (MpAccSDKException e) {e.printStackTrace();}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intentdata) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == VPN_REQUEST_CODE && resultCode == RESULT_OK) {try {AccConfig accConfig = new AccConfig();ArrayList<String> list = new ArrayList<>();accConfig.setAccMode(AccConfig.ACC_MOD_BONDING); //设置加速模式accConfig.setRoute("0.0.0.0", 0); //加速ip列表//list.add("air.tv.douyu.android"); //传入需要加速的包名,不传默认对所有应用加速accConfig.setWhiteList(list, 0);mpAccClient.startAcc(accConfig);} catch (MpAccSDKException e) {e.printStackTrace();}}}
//在退出时释放资源,比如Activity的onDestroy方法中调用private void stopAcc() {try {mpAccClient.unregisterAccCallback(accCallback);mpAccClient.stopAcc();} catch (MpAccSDKException e) {e.printStackTrace();}}
private void initMpAcc() {MpAccClient.setDataKey("test-123456", "*");mpAccClient = MpAccClient.getInstance(this);}//发起加速(socks模式)private void startSocksAcc() {AccConfig accConfig = new AccConfig();accConfig.setAccMode(AccConfig.ACC_MOD_BONDING).setPingInterval(3).setEnableSocks(true) //Socks模式需要设置为true.setSocksPort(1080);//设置代理端口try {//监听加速状态回调mpAccClient.registerAccCallback(accCallback);mpAccClient.startAcc(accConfig);} catch (MpAccSDKException e) {e.printStackTrace();}}private void stopSocksAcc() {try {mpAccClient.unregisterAccCallback(accCallback);mpAccClient.stopAcc();} catch (MpAccSDKException e) {e.printStackTrace();}}
//UDP使用socks5发包示例private void testUdpSocks() {try {Log.i(TAG, "start testUdp");//1、端口需和发起加速设置的setSocksPort保持一致SocksProxy socksProxy = new Socks5(newInetSocketAddress("localhost", 1080));//2、将socksProxy设置给DatagramSocketDatagramSocket clientSocket = newSocks5Datagram(socksProxy);//3、后续进行正常的发包业务String message = "Hi, I am UDP client";byte[] sendBuffer = message.getBytes();DatagramPacket packet =new DatagramPacket(sendBuffer, sendBuffer.length,new InetSocketAddress("106.55.119.181", 8888));clientSocket.send(packet);//Received response message from UDP server.} catch (IOException e) {e.printStackTrace();}}//HttpURLConnection使用socks代理private void testHttpSocks() {BufferedReader buff = null;HttpURLConnection urlConnection = null;try {//创建proxy代理Proxy socksProxy = new Proxy(Proxy.Type.SOCKS, newInetSocketAddress("127.0.0.1", 1080));URL url = new URL("url");//Proxy添加给HttpURLConnectionurlConnection = (HttpURLConnection)url.openConnection(socksProxy);//后续进行正常的发包业务} catch (Exception e) {e.printStackTrace();}}//OKHttp使用socks代理private void testOkHttpSocks(){//创建proxy代理Proxy socksProxy =new Proxy(Proxy.Type.SOCKS,new InetSocketAddress("127.0.0.1", 1080));//Proxy添加给OkHttpClientOkHttpClient client = newOkHttpClient.Builder().proxy(socksProxy).build();//后续进行正常的发包业务}//TCP Socket使socks用代理private void testSocketSocks() {Proxy socksProxy =new Proxy(Proxy.Type.SOCKS,new InetSocketAddress("127.0.0.1", 1080));Socket socket = new Socket(socksProxy);//...}
<uses-sdk tools:overrideLibrary="com.android.linkboost.multi,androidx.security"/>
文档反馈