From 736219931af9293fde9355d2f99041e7ab809fc0 Mon Sep 17 00:00:00 2001 From: TrillGates Date: Tue, 13 Apr 2021 11:40:50 +0800 Subject: [PATCH] save friends contacts. --- .../com/enqualcomm/support/CoreService.java | 5 ++- .../support/provider/FZDDatabaseHelper.java | 2 +- .../support/provider/FZDMembersProvider.java | 4 ++ .../java/com/ic/protocols/protocol_fzd.java | 43 ++++++++++++++----- 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index a1c563bb..fd46a347 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -422,7 +422,7 @@ public class CoreService extends Service { // CoreService.is_wifi_network_ok = true; if (!runtime.isNoTurnOffWifiOnScreenOff()) { //不关闭wifi when ScreenOff - ICLogger.i("turnOffWifiForConnect"); + //ICLogger.i("turnOffWifiForConnect"); // if (Util.isWifiIsOpen(runtime.getContextProxy().context,runtime)) // Util.turnOffWifiForSleep(runtime.getContextProxy().context, runtime); } @@ -1771,10 +1771,11 @@ public class CoreService extends Service { @Override public void makeFriends() { + ICLogger.d("make friends..."); //交朋友的话是根据配置去走蓝牙交友 //还是位置交友 //目前先实现位置交友的功能 - protocol_fzd.makeFriendsByPosition(runtime); + protocol_fzd.makeFriendsByPosition(connection,runtime); } @Override diff --git a/app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java b/app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java index 9d8cd84b..2fc4aec9 100644 --- a/app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java +++ b/app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java @@ -102,7 +102,7 @@ public class FZDDatabaseHelper extends SQLiteOpenHelper { tMembers + " (" + fID + - " integer primary key, " + + " text primary key, " + fUserName + " text, " + fPhoneNum + diff --git a/app/src/main/java/com/enqualcomm/support/provider/FZDMembersProvider.java b/app/src/main/java/com/enqualcomm/support/provider/FZDMembersProvider.java index c8311ae8..24c9c87c 100644 --- a/app/src/main/java/com/enqualcomm/support/provider/FZDMembersProvider.java +++ b/app/src/main/java/com/enqualcomm/support/provider/FZDMembersProvider.java @@ -75,6 +75,10 @@ public class FZDMembersProvider extends ContentProvider { int match = sUriMatcher.match(uri); if (match == MATH_CODE_TABLE) { SQLiteDatabase writableDatabase = mDatabase.getWritableDatabase(); + //判断是否有存在吧,确保唯一,删除再添加吧,否则也是添加不进去的 + writableDatabase.delete(FZDDatabaseHelper.tMembers, FZDDatabaseHelper.mId + "=?", new String[]{ + values.getAsString(FZDDatabaseHelper.mId) + }); long insert = writableDatabase.insert(FZDDatabaseHelper.tMembers, null, values); writableDatabase.close(); getContext().getContentResolver().notifyChange(uri, null); diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index f35f94af..5f6d596a 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -41,7 +41,6 @@ import com.enqualcomm.support.provider.FZDFollowProvider; import com.enqualcomm.support.provider.FZDMembersProvider; import com.enqualcomm.support.provider.FZDMessageProvider; import com.enqualcomm.support.provider.FZDSettingsProvider; -import com.enqualcomm.support.service.Deliver; import com.enqualcomm.support.service.HeartRateManager; import com.enqualcomm.support.utils.AlarmHelper; import com.enqualcomm.support.utils.CameraUtil; @@ -1389,9 +1388,9 @@ public class protocol_fzd { /** * 根据位置交朋友 */ - public static void makeFriendsByPosition(Runtime runtime) { + public static void makeFriendsByPosition(Connection connection, Runtime runtime) { StringMessage pp = PP(runtime); - Deliver.sendLocationMSG(pp); + connection.send(pp); } /*** @@ -1750,15 +1749,17 @@ public class protocol_fzd { * * @param data * @param mRuntime - * @param mConnection */ private void handlerPPQ(String data, Runtime mRuntime) { + ICLogger.d("PPQ data ====> " + data); //解析数据,三个为一组 String[] split = data.split(CMDSPLIT); if (split.length % 3 == 0) { //1,2,3,4,5,6,7 for (int i = 0; i < split.length - 2; i += 3) { String id = split[0]; + //String test = Util.decodeUnicode2Utf8(id); + //ICLogger.d("test == > " + test); String friendName = Util.decodeUnicode2Utf8(split[1]); String phoneNum = split[2]; ICLogger.d("id == > " + id); @@ -1773,7 +1774,25 @@ public class protocol_fzd { contentValues.put(FZDDatabaseHelper.fUpdateTime, System.currentTimeMillis()); //结果有了,保存到内容提供者里头去. mRuntime.getContextProxy().getResolver() - .insert(Uri.parse(FZDMembersProvider.MEMBERS), contentValues); + .insert(Uri.parse(FZDMembersProvider.MEMBERS), + contentValues); + } + //通知UI更新 + RemoteCallbackList fzdCallback = mRuntime.getFZDCallback(); + if (fzdCallback == null) { + return; + } + try { + int i = fzdCallback.beginBroadcast(); + while (i > 0) { + i--; + IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i); + broadcastItem.onFriendsListLoaded(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + fzdCallback.finishBroadcast(); } } else { //数据长度不对 @@ -1806,11 +1825,15 @@ public class protocol_fzd { result = 0; //成功的结果 String[] split = data.split(CMDSPLIT); - String friendName = Util.decodeUnicode2Utf8(split[0]); - String friendId = split[1]; + String friendId = split[0]; + String friendName = Util.decodeUnicode2Utf8(split[1]); + String phoneNum = ""; + if (split.length == 3) { + phoneNum = split[2]; + } ICLogger.d("friend name is == > " + friendName); ICLogger.d("friend id is == > " + friendId); - + ICLogger.d("phone number --> " + phoneNum); } else { //失败,具体拿出值 try { @@ -1828,9 +1851,9 @@ public class protocol_fzd { try { int i = fzdCallback.beginBroadcast(); while (i > 0) { + i--; IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i); broadcastItem.onFriendsMakeResult(result); - i--; } } catch (Exception e) { e.printStackTrace(); @@ -1848,9 +1871,9 @@ public class protocol_fzd { try { int i = fzdCallback.beginBroadcast(); while (i > 0) { + i--; IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i); broadcastItem.onFriendsUnbindResult(); - i--; } } catch (Exception e) { e.printStackTrace(); -- 2.17.1