Android版本
mven{ url'https://nexus.plaso.cn/repository/maven-public/' },
buildscript {
repositories {
google()
jcenter()
maven { url 'https://nexus.plaso.cn/repository/maven-public/' }
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.1"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://nexus.plaso.cn/repository/maven-public/' }
}
}
implementation "com.plaso.zypizhu:ZyPizhuSDK:0.0.12",
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation "com.plaso.zypizhu:ZyPizhuSDK:0.0.12"
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
},
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
defaultConfig {
applicationId "cn.plaso.pizhusdkaccessdemo"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
private void start() {
Intent intent = new Intent(MainActivity.this, CheckHomeWorkActivity.class);
try {
JSONArray jsonArray = new JSONArray();
jsonArray.put("https://download.plaso.cn/static/sdk/websdkdemo/imgs/zuoye_demo1.jpeg");
jsonArray.put("https://download.plaso.cn/static/sdk/websdkdemo/imgs/zuoye_demo2.jpeg");
jsonArray.put("https://download.plaso.cn/static/sdk/websdkdemo/imgs/zuoye_demo3.jpg");
//图片路径,以json数据传入
intent.putExtra(CheckHomeWorkActivity.IMAGE_URLS, jsonArray.toString());
intent.putExtra(CheckHomeWorkActivity.APP_ID, appId);
intent.putExtra(CheckHomeWorkActivity.EXERCISE_ID, exerciseId);
intent.putExtra(CheckHomeWorkActivity.MULTI_LABEL,true);//是否生成多份作业
intent.putExtra(CheckHomeWorkActivity.SHOW_EVALUATE_DIALOG, true);//是否显示评价弹窗,true显示false不显示
//鉴于有结果返回,因此使用startActivityForResult
startActivityForResult(intent, REQUEST_CODE);
} catch (Exception e) {
e.toString();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
try {
JSONArray jsonArray= new JSONArray(data.getStringExtra(CheckHomeWorkActivity.RETURN_RESULTS));
if(jsonArray==null || jsonArray.length()==0){
return;
}
int length=jsonArray.length();
for (int index=0;index<length;index++) {
String record = jsonArray.getJSONObject(index).getString("recordId");
int accuracy= jsonArray.getJSONObject(index).getInt("accuracy");
int grade = jsonArray.getJSONObject(index).getInt("grade");
Log.e("测试", "返回数据 " + record + " " + accuracy + " " + grade);
String path = generateRecordResult(appId, record);
Log.e("测试路径", path);
}
} catch (Exception e) {
e.toString();
}
}
}
@Override
public String getSignature() {
String query = "appId=" + appId + "&beginTime=" + (System.currentTimeMillis() / 1000) + "&exerciseId=" + exerciseId + "&validTime=3600";
try {
query = query + "&signature=" + encrypt(query);
} catch ( Exception e) {
Log.e("测试", e.toString());
}
return query;
}
private String encrypt(String datas) throws Exception {
String algorithm = "HmacSHA1";
Charset charset = Charset.forName("UTF-8");
byte[] data = SELF_KEY.getBytes(charset);
SecretKeySpec secretKey = new SecretKeySpec(data, algorithm);
Mac mac = Mac.getInstance(algorithm);
mac.init(secretKey);
byte[] rst = mac.doFinal(datas.getBytes(charset));
return new BigInteger(1, rst).toString(16).toUpperCase();
}
7、完整示例代码参考demo源码
请点击下载

修改于 2025-03-20 06:13:43