上传通讯录
通讯录上传流程:
1、app获取手机联系人
2、制作 contact.json文件
3、调用文件传输接口
json字段说明:
| 属性 | 类型 | 说明 |
|---|---|---|
| year | Int | 年 |
| month | Int | 月 |
| day | Int | 日 |
| hour | Int | 时 |
| minute | Int | 分 |
| second | Int | 秒 |
| contact_item_num | Int | 联系人数量(对应items.count) |
| items | 集合 |
| 属性 | 类型 | 说明 |
|---|---|---|
| name | String | 名称(最大64字节) |
| phone | String | 电话(最大32字节) |
示例:
Swift:
var items = [IDOTransBaseModel]()
// 联系人
items.append(IDOTransNormalModel(fileType: .ml, filePath: "/xx/xx/x.json", fileName: "contacts"))
// 调用传输
let canceler = sdk.transfer.transferFiles(fileItems: items, cancelPrevTranTask: true) { currentIndex, totalCount, _, totalProgress in
print("传输中(\(currentIndex + 1)/\(totalCount)...")
} transStatus: { _, status, errorCode, _ in
if status != .finished || errorCode != 0 {
print("传输失败:\(errorCode)")
}
} completion: { rs in
print("传输结束: \(rs)")
if rs.last! {
// 传输成功
} else {
// 传输失败
}
}
Kotlin:
var items = mutableListOf<IDOTransBaseModel>()
// 联系人
items.add(IDOTransNormalModel(fileType: IDOTransType.ML, filePath: "/xx/xx/x.json", fileName: "contacts"))
// 调用传输
val cancellable = sdk.transfer.transferFiles(
items, cancelPre,
{ currentIndex, totalCount, currentProgress, totalProgress ->
print("传输中${currentIndex + 1}/$totalCount...")
},
{ currentIndex: Int, status: IDOTransStatus, errorCode: Int?, finishingTime: Int? ->
if (status != IDOTransStatus.FINISHED || errorCode != 0) {
print("传输失败:$errorCode")
}
},
{resultList-> resultList.forEach {
if (it){
//传输成功
}else{
//传输失败
}
}})
ArkTs
let items = Array<IDOTransBaseModel>()
// 联系人
items.push(new IDOTransNormalModel(IDOTransType.ml,"/xx/xx/x.json","contacts",0))
// 调用传输
let cancellable = sdk.transfer.transferFiles(items,cancelPrevTranTask,
(currentIndex, totalCount, currentProgress, totalProgress) =>{
console.log(`传输中 ${currentIndex+1}/${totalCount}`)
},
(currentIndex, status, errorCode, finishingTime) =>{
if(status != IDOTransStatus.finished || errorCode != 0){
console.log(`传输失败:${errorCode}`)
}
},
(results: boolean[]) =>{
console.debug(`trans rs: ${results}`);
for (let res of results) {
if(res){
//传输成功
} else{
//传输失败
}
}
}
)