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;
TKOne,//一对一微聊
TKIMG,//聊天图片
PHL,//设置电话本+白名单(最多 50 条)
+ PP,//交友
wdstart,//远程测温
bldstart,//远程测血压
hrtstart,//远程测量心率
cmdMap.put(CMD_TYPE.RECORD, "RECORD");
cmdMap.put(CMD_TYPE.INFO, "INFO");
cmdMap.put(CMD_TYPE.WIFISET, "WIFISET");
+ cmdMap.put(CMD_TYPE.PP, "PP");
cmdMap.put(CMD_TYPE.BLE, "BLE");
cmdMap.put(CMD_TYPE.PING, "PING");
cmdMap.put(CMD_TYPE.rcapture, "rcapture");
return genFZDCMD(cmdMap.get(CMD_TYPE.PHL));
}
+ public static StringMessage PP(Runtime runtime) {
+ //地理位置数据
+ String locationData = getLocationData(runtime);
+ return genFZDCMD(cmdMap.get(CMD_TYPE.PP), locationData);
+ }
+
+
+ /**
+ * 根据位置交朋友
+ */
+ public static void makeFriendsByPosition(Runtime runtime) {
+ StringMessage pp = PP(runtime);
+ Deliver.sendLocationMSG(pp);
+ }
+
/***
* [IC*334588000000156*len*PHL,号码,名字,号码,名字,号码,名字,号码,名字,号码,名字] len:发送长度 16 进制表示 占用 2 个字节
* 号码:ascii 字符 名字:Unicode 编码
handleFriendUnbindResult(mRuntime, data);
ICLogger.d("解除好友的指令..." + data);
break;
+ case PP:
+ //交友结果处理
+ ICLogger.d("收到交友的结果指令.");
+ handlePP(mRuntime, data);
+ break;
}
return ret;
}
+ /**
+ * 平台回复: 情况一:交友成功 [XT*8800000015*LEN*PP*ID,昵称,手机号]
+ * 实例: [XT*8800000015*000A*8800000015, 5F204E0,555]
+ * 5F204E09--->张三,是使用 unicode 编码 如果手机号为空,
+ * 则为[XT*8800000015*000A*e476005866e8a2a6407502b3, 5F204E09,] 如果手机号昵称都为空,
+ * 则为[XT*8800000015*000A*e476005866e8a2a6407502b3,,]
+ * 情况二:交友失败 [XT*8800000015*LEN*X] X 的值为 1 表示没收到相应 PP 指令,为 2 表示超过好友上限。
+ * 如果服务端一直没返回 PP 指令,默认也是交友失败,终端可设三十秒的超时时间。
+ * 实例: [XT*8800000015*0001*PP,1] [XT*8800000015*0002*PP,2]
+ * 注:碰碰交友后,双向可互相打电话,另外可相互微聊对讲,微聊接口为 TK2(具体参见以 下接口)。
+ * 如果交友成功,但终端未收到 PP 确认指令,则终端可调用 PPQ 指令(文档最后 面),同步所有好友数据。
+ *
+ * @param mRuntime
+ */
+ private void handlePP(Runtime mRuntime, String data) {
+ ICLogger.d("交友结果--> " + data);
+ //第一种情况[XT*8800000015*000A*PP, 5F204E0,555]
+ //另外一种情况 情况[XT*8800000015*0001*PP,1]/[XT*8800000015*0002*PP,2]
+ //
+ boolean contains = data.contains(CMDSPLIT);
+ int result = 0;
+ if (contains) {
+ result = 0;
+ //成功的结果
+ String[] split = data.split(CMDSPLIT);
+ String friendName = Util.decodeUnicode2Utf8(split[0]);
+ String friendId = split[1];
+ ICLogger.d("friend name is == > " + friendName);
+ ICLogger.d("friend id is == > " + friendId);
+
+ } else {
+ //失败,具体拿出值
+ try {
+ result = Integer.parseInt(data);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ //处理结果
+ RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+ try {
+ if (fzdCallback == null) {
+ ICLogger.d("fzdCallback -- > null");
+ return;
+ }
+ int i = fzdCallback.beginBroadcast();
+ while (i > 0) {
+ //TODO:
+ IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i);
+ broadcastItem.onFriendsMakeResult(result);
+ i--;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ fzdCallback.finishBroadcast();
+ }
+ }
+
private void handleFriendUnbindResult(Runtime mRuntime, String data) {
//解除有结果了,然去拉取一下新的用户列表吧
RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();