SDK安全引擎接入说明

Android接入说明

权限要求

要求应用app必须具有以下权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

API接口描述

package com.netshield;

public class Netshield {
    /**
     * 启动服务
     * @param context Application Context
     * @return 0-成功 -1-失败
     */
    public static int Start(Context context);

    /**
     * 获取客户端IP
     * @return 客户端IP
     */
    public static String GetClientIP();
}

接入说明

代码接入

AndroidManifest.xml appliction节点中添加以下代码

<provider android:authorities="com.netshield.NetshieldContentProvider" android:exported="false" android:name="com.netshield.NetshieldContentProvider"/>

例如:

<application ...>
    ...
    <provider android:authorities="com.netshield.NetshieldContentProvider" android:exported="false" android:name="com.netshield.NetshieldContentProvider"/>
</application>

原生项目

Eclipse

  1. 将 AAR 文件后缀名改为 ZIP 并解压,解压的目录需要和项目在同一盘符下。比如项目在F盘,则解压的sdk也应在 F盘。 

2、在解压得到的目录里创建一个 libs 文件夹 

3、删除 R.txt文件

4、将classes.jar移动到libs文件夹下

5、

将jni下和项目架构相同的文件夹(比如项目用到了armeabi和armeabi-v7a,则只拷贝armeabi和armeabi- v7a,其他的不要动)移到 libs 文件夹下

 

6、删除jni文件夹

7、在解压得到的目录里创建 project.properties 文件,内容如下:

target=android-21
android.library=true

 

 8. 导入sdk到eclipse中

Android Studio

如果项目开启了prguard优化,请添加以下规则

    -keep class com.netshield.* { *; }
    -dontwarn com.tencent.bugly.**
    -keep public class com.tencent.bugly.**{*;}

如果报错transformClassesAndResourcesWithProguardForRelease,请添加

    -ignorewarnings

假设原module名为app,新增的module名为netshield

  1. 添加netshield-release模块

 

 

2、设置项目依赖 

 

3、同步配置 

 

 

 

IOS

API接口描述

//获取客户端IP
std::string GetRealClientIP();

接入说明

 

 

 

 

Demo

#include <netshield_export.h>

- (void)viewDidLoad {
    NSLog(@"ClientIP:[%@]", [NSString stringWithCString:GetRealClientIP().c_str() encoding:[NSString defaultCStringEncoding]]);
}

Windows

API接口描述

//功能开启
_declspec(dllexport) BOOL StartNetshieldService();
//获取客户端IP,需要在 StartNetshieldService 后调用
_declspec(dllexport) const char* GetRealClientIP();

Visual Studio项目

  1. 拷贝netshield.dll到应用目录下
  2. 修改main函数
int main()
{
    HINSTANCE pNetshield = NULL;
#ifdef UNICODE
    pNetshield = LoadLibraryW(TEXT("netshield.dll"));
#else
    pNetshield = LoadLibraryA(TEXT("netshield.dll"));
#endif

    BOOL (*StartNetshieldService)()  = nullptr;
    const char* (*GetRealClientIP)() = nullptr;
    if (NULL != pNetshield) {
        char errmsg[512]      = {0};
        StartNetshieldService = (BOOL(*)())GetProcAddress(pNetshield, "StartNetshieldService");
        GetRealClientIP       = (const char* (*)())GetProcAddress(pNetshield, "GetRealClientIP");
    } else {
        MessageBoxA(NULL, "netshield.dll加载失败,请联系开发人员。", "netshield", MB_OK | MB_ICONINFORMATION);
        exit(0);
    }
    if (nullptr != StartNetshieldService) {
        fprintf(stdout, "StartNetshieldService:%p\n", (void*)StartNetshieldService);
        StartNetshieldService();
    }
    // 业务代码
    return 0;
}

Unity

代码结构创建

  1. 在Assets/Plugins目录下新增Netshield目录
  2. 在Netshield目录下新增impl和libs目录
  3. 在libs目录下新建x86和x86_64目录
  4. 拷贝Netshield.cs至Assets/Plugins/Netshield目录下
  5. 拷贝INetshieldInterface.cs,Netshield4IOS.cs,Netshield4Android.cs ,Netshield4Windows.cs,Netshield4Others.cs至Assets/Plugins/Netshield/impl目录下
  6. 拷贝netshield-release.aar,netshield.framework至libs目录下;拷贝32位netshield.dll至x86目录下;拷贝64位netshield.dll至x86_64目录下

 

 

设置SDK属性

netshield-release.aar

netshield.framework

 

 

 x86/netshield.dll

x86_64/netshield.dll 

代码调用

在入口类中进行调用,下列例子为绑定到Main Camera的脚本HelloWorld.cs

public class HelloWorld : MonoBehaviour
{
    // 应用启动
    public void Start()
    {
        // 初始化SDK
        Netshield.Init();
        // 获取真实客户端IP
        Debug.Log(Netshield.GetClientIP());
    }
    
    // 应用退出
    public void OnApplicationQuit()
    {
        // 释放SDK资源
        Netshield.Destroy();
    }
}

Unity相关代码

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值