From: TrillGates Date: Fri, 20 Aug 2021 10:07:58 +0000 (+0800) Subject: fixed call logs update contact names. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=925733f0fd90fabc7628dbb672a338ddaebbf5b4;p=icsupport.git fixed call logs update contact names. --- diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 86da3a1f..95632d3c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,6 +24,7 @@ + diff --git a/app/src/main/java/com/enqualcomm/support/utils/DBHelper.java b/app/src/main/java/com/enqualcomm/support/utils/DBHelper.java index 75cbc308..85b763ac 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/DBHelper.java +++ b/app/src/main/java/com/enqualcomm/support/utils/DBHelper.java @@ -11,6 +11,7 @@ import android.net.Uri; import android.os.Handler; import android.os.HandlerThread; import android.os.SystemClock; +import android.provider.CallLog; import android.provider.ContactsContract; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.RawContacts; @@ -69,6 +70,10 @@ public class DBHelper { */ private void addAllContact(ArrayList contactArray, ContentResolver resolver) { Iterator contactIT = contactArray.iterator(); + //通过ID去删除联系人 + //先删除原来的,再进行添加操作 + int delete = resolver.delete(RawContacts.CONTENT_URI, null, null); + ICLogger.d("delete ==> " + delete); while (contactIT.hasNext()) { Contact contact = (Contact) contactIT.next(); ContentValues contentvalues = new ContentValues(); @@ -85,9 +90,13 @@ public class DBHelper { contentvalues.put("data2", 2); resolver.insert(Data.CONTENT_URI, contentvalues); contentvalues.clear(); + //更新通讯录里的名称 + ContentValues callLogsValues = new ContentValues(); + callLogsValues.put("name", contact.name); + resolver.update(CallLog.Calls.CONTENT_URI, callLogsValues, + "number=?", new String[]{contact.number}); } ICLogger.i("addAllContact done"); - } /** @@ -761,12 +770,7 @@ public class DBHelper { this.saveContactsImpl(contactArray, admin, care, call, partner, video, sos); lastUpdateTime = currentTime; } else { - mHandler.postDelayed(new Runnable() { - @Override - public void run() { - DBHelper.this.saveContacts(contactArray, admin, care, call, partner, video, sos); - } - }, 1000); + mHandler.postDelayed(() -> saveContacts(contactArray, admin, care, call, partner, video, sos), 1000); } } catch (Exception e) { e.printStackTrace(); diff --git a/app/src/main/java/com/ic/protocols/protocol_s123.java b/app/src/main/java/com/ic/protocols/protocol_s123.java index a8253c81..e824dfc8 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -1229,7 +1229,7 @@ public class protocol_s123 { String index = cmdlist[2]; ICLogger.i(sb.toString()); connection.send(AP14(index, phnums)); - ArrayList contactArray = new ArrayList(); + ArrayList contactArray = new ArrayList<>(); if (Config.custom_name.equals("YT")) { ICLogger.i("=====add hotline 96885 "); @@ -1240,6 +1240,7 @@ public class protocol_s123 { resolver.delete(Uri.parse(ICMembersProvider.MEMBERS), "type=?", new String[]{ ICDatabaseHelper.MemberType.WHITE_LIST + "" }); + //从记录上看, for (int i = 0; i < phnums.length; i++) { String[] tmp = phnums[i].split("\\|"); if (tmp.length == 2) { @@ -1265,7 +1266,8 @@ public class protocol_s123 { // contactArray.add(new Contact(Contact.CATEGORY_CARE,"CARE","666")); // contactArray.add(new Contact(Contact.CATEGORY_VOLTE,"VOLTE","666")); - runtime.getDbHelper().saveContacts(contactArray, false, false, true, false, false, false); + runtime.getDbHelper().saveContacts(contactArray, + false, false, true, false, false, false); //加一份到IC的库中 } else { @@ -1429,18 +1431,15 @@ public class protocol_s123 { System.arraycopy(sb.getBytes(), 0, sentbuf, 0, sb.length()); System.arraycopy(amrdata, 0, sentbuf, sb.length(), datalen); sentbuf[sb.length() + datalen] = '#'; - return sentbuf; - } - public void handleBP07(String cmd, Connection connection) { -//平台响应: IWBP07,20140818064408,6,1,1# -//20140818064408:设备语音时间,yyyyMMddHHmmss 格式的年月日时分秒 -//6:语音包分包总数 -//1:当前设备收到的是第几个包 -//1:表示服务器接受数据成功,0表示服务器接受数据失败 + //平台响应: IWBP07,20140818064408,6,1,1# + //20140818064408:设备语音时间,yyyyMMddHHmmss 格式的年月日时分秒 + //6:语音包分包总数 + //1:当前设备收到的是第几个包 + //1:表示服务器接受数据成功,0表示服务器接受数据失败 String[] cmdlist = cmd.split(CMDSPLIT); if (cmdlist.length == 5) { try { @@ -1463,7 +1462,6 @@ public class protocol_s123 { } } - public static StringMessage AP33(String cmdIndex, int workMode) { //IWAP33,080835,1# //080835:指令流水号 @@ -1521,18 +1519,17 @@ public class protocol_s123 { // CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod()); //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。 } - } - public static StringMessage AP34(String cmdindex, int workMode) { //IWAP34,588854,1# //080835:指令流水号 //8:模式 - return genStringMessage("AP34", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34)) - .append(CMDSPLIT).append(cmdindex) - .append(CMDSPLIT).append(workMode) - .append(CMDEND).toString()); + return genStringMessage("AP34", + new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34)) + .append(CMDSPLIT).append(cmdindex) + .append(CMDSPLIT).append(workMode) + .append(CMDEND).toString()); } //设置自定义工作模式 @@ -1861,7 +1858,6 @@ public class protocol_s123 { String[] msg = cmd.split(CMDSPLIT); if (msg.length >= 6) { - try { Name = msg[1]; appendIndex = msg[2];