# 应用客户端接入

# 应用需提供参数以及获取方式

接入参数

提供方 参数名称 说明 获取方式 备注
应用名称 应用的名字和功能描述
应用 包名 检测包名是否和安卓系统内相符 APP开发工具可查 (必须提供)
应用 SHA1值 APP发布应用所使用签名文件的SHA1值,用来校验应用接入是否合法 windows环境下CMD命令
keytool -list -v -keystore 签名文件 或者 keytool -list -printcert -jarfile app名.apk 即可获取
(必须提供签名文件的sha1值)可以将本机开发debug版本的sha1值一起提供方便开发测试
应用 MD5值 应用APP发布应用所使用签名文件的MD5值,用来校验应用接入是否合法 windows环境下CMD命令
keytool -list -v -keystore 签名文件或者 keytool -list -printcert -jarfile app名.apk 即可获取。
(必须提供签名文件的MD5值)可以将本机开发debug版本的MD5值一起提供方便开发测试
应用 应用平台出口IP地址 平台接口限制应用只能从应用平台IP调用此接口。 应用平台网络维护人员 调用CISS提供的接口需要
CISS平台 CISSAppId 传给应用APPid,用来和ciss交互 提供第三第四列参数后申请通过即返回 重要参数不可泄漏
CISS平台 CISSAppKey 传给应用APPKey,用来和ciss交互以及加密通讯使用 提供第三第四列参数后申请通过即返回 重要参数不可泄漏

# 相关文件及参数

# 开发环境

编译器版本:AndroidStudio 3.1.4以上

Gradle 版本:4.4

# 所需权限

> 动态申请
文件存储 READ_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE
读取手机信息 READ_PHONE_STATE
弹窗权限 SYSTEM_ALERT_WINDOW
蓝牙权限 BLUETOOTH 和 BLUETOOTH_ADMIN
位置权限 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION

# 添加库文件

将 libciss-skfJava-national-release.aar (不同版本aar文件名会有不同) 文件,添加到app module的libs文件夹中,

# 项目配置

由于项目中使用了

  • 在 app module 的 build.gradle 文件添加如下配置
repositories {
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    //不同版本aar文件名会有不同
    implementation(name:'libciss-skfJava-national-release', ext:'aar')

    implementation 'com.google.code.gson:gson:2.8.6'
    implementation 'org.bouncycastle:bcprov-jdk15on:1.62'
}
1
2
3
4
5
6
7
8
9
10
11
12
  • 在 AndroidManifest.xml 文件的 <application> 节点添加如下配置:
<uses-library android:name="org.simalliance.openmobileapi"  android:required="false" />
1

注:和<activity></activity>同级。

# 混淆配置:

-keep class com.asiainfo.sec.libciss.** { *; }
-keep class cissskfjava.** { *; }
1
2

# 添加启动app时的初始化操作:

private static Context context;
private static final String CISSAppId = "*************";
private static final String CISSAppKey = "***************";

@Override
public void onCreate() {
    super.onCreate();
    context = getApplicationContext();
    try {
        CISS.init(this, CISSAppId, CISSAppKey);//初始化
        CISSConfig.getInstance().setRandomPin(true);//输入pin时使用随机键盘
    } catch (Exception e) {
        Log.e("MyApp", "CISS初始化失败:" + e.getMessage(), e);
    }
}

public static Context getContext() {
    return context;
}  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19