闪速连SDK集成指南

闪速连SDK集成指南

一、集成步骤

  1. 解压缩Shansulian-android-1.0.0-release.zip 集成压缩包。
  2. 复制 shansulian_x.x.x.jar 到工程 libs/ 目录下。
  3. 复制 libs/(cpu-type)/libjbcrypto.so 到你的工程中存放对应 cpu 类型的目录下。
  4. 复制libs/(cpu-type)/libopenvpn.so 到你的工程中存放对应cpu类型的目录下。
  5. 复制libs/(cpu-type)/libopvpnutil.so 到你的工程中存放对应cpu类型的目录下。
  6. 复制 values 文件夹中strings.xml资源文件到你的工程中 res/ 对应同名的目录下(或复制文件中的资源到string.xml中粘贴)。
  7. 复制assets文件夹中的文件到你的工程的assets目录中。
使用android studio的开发者需要注意以下事项

1、如果使用 jniLibs 文件夹导入 so 文件,则仅需将所有 cpu 类型的文件夹拷进去;如果将 so 文件添加在 module的libs 文件夹下,注意在 module 的 gradle 配置中添加一下配置:

sourceSets {
main {
    assets.srcDirs = ['src/main/assets']
    jniLibs.srcDirs = ["libs"]
}
}

2、工程项目中默认是没有assets目录,需要自己创建,将鼠标放在工程上右键–>new —> Folder ----> Assets Folder,即可创建assets目录。

3、在build.gradle中需要添加如下依赖:

implementation 'com.squareup.okhttp3:okhttp:4.2.2'
implementation 'com.google.code.gson:gson:2.6.2'

二、配置AndroidManifest.xml

请根据压缩包里的AndroidManifest.xml样例文件,来配置应用程序项目的AndroidManifest.xml。

集成步骤
  1. 复制节点为 “uses-permission” 的部分,系统运行时权限;
  2. 复制”service”节点,到AndroidManifest.xml 的application节点中。
AndroidManifest.xml示例代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.shansulian.shansulianipsdkdemo">


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application
    android:name=".AppContext"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service
        android:name="de.blinkt.openvpn.core.OpenVPNService"
        android:permission="android.permission.BIND_VPN_SERVICE"
        >
        <intent-filter>
            <action android:name="android.net.VpnService" />
        </intent-filter>
    </service>
</application>
</manifest>
必须权限说明
  1. INTERNET:允许应用可以访问网络。
  2. READ_PHONE_STATE:允许应用访问手机状态。
  3. WRITE_EXTERNAL_STORAGE:允许应用写入外部存储。
  4. READ_EXTERNAL_STORAGE:允许应用读取外部存储。
  5. WRITE_SETTINGS:允许应用读取系统设置项。
  6. ACCESS_NETWORK_STATE:允许应用获取网络信息状态,如当前的网络连接是否有效。

添加代码

Shansulian SDK 提供的API接口,主要集中在com.shansulian.shansuliansdk.Shansulian类里。

基础API

Init 初始化SDK

Public static void initSsl(Context ctx)

示例代码:

public class AppContext extends Application {

@Override
public void onCreate() {
    super.onCreate();
    SSLContext.initSsl(this);
}
}

以上代码定制一个本应用程序Application类,需要在AndroidManifest.xml里配置。请参考AndroidManifest.xml片段,或者example项目。

在正确使用SDK之前需要用户先去闪速连官网购买账号,购买账号之后方可进行登录:

登录示例代码

Shansulian shansulian = new Shansulian(context,connectIPServiceCallback);
shansulian.login(account,pwd);

connectIPServiceCallback 对象为登录连接回调接口:

IpStatus:返回IP链接实时状态
loginFail:登录失败
loginSuccess:登录成功时回调
ConnectFail:链接IP服务失败时回调
connectSuccess:连接成功时回调

ipStatus接口返回参数如下:

  1. VPN_GENERATE_CONFIG
  2. TCP_CONNECT:连接中(TCP)
  3. WAIT:等待服务器响应
  4. AUTH:验证中
  5. GET_CONFIG:正在获取客户端配置
  6. ASSIGN_IP:正在分配 IP 地址
  7. ADD_ROUTES:添加路由
  8. CONNECTED:已连接
  9. NONETWORK:等待可用网络
  10. RECONNECTING:正在重新连接
  11. CONNECTING:连接中
  12. DISCONNECTED:断开
  13. CONNECTRETRY:等待重连

登录成功之后可以进行登录IP服务器,或切换IP服务器:

shansulian.changeIp();

说明:在Activity中切换IP需要重写onActivityResult(int requestCode, int resultCode, @Nullable Intent data)方法,示例代码如下:

    @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == Shansulian.b) {
        shansulian.onActivityResultOkCont();
    }
}

在退出应用或不使用IP时可以断开连接:

Shansulian.closeIP();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值