/** * */ package org.orange.familylink.sms; import org.orange.familylink.data.Message; import org.orange.familylink.util.Crypto; import android.content.Context; import android.net.Uri; /** * 通过使用Sms实现的{@link Message} * @author Team Orange * @see SmsSender */ public class SmsMessage extends Message { @Override public void send(Context context, Uri messageUri, String dest, String password) { // 加密body String body = getBody(); if(body != null) setBody(Crypto.encrypt(body, password)); String json = toJson(); // 通过SMS发送消息 json = encode(json); SmsSender.sendMessage(context, messageUri, json, dest); // 恢复body setBody(body); } @Override public void receive(String receivedMessage, String password) { receivedMessage = decode(receivedMessage); fromJson(receivedMessage); String body = getBody(); if(body != null) setBody(Crypto.decrypt(body, password)); } protected static String encode(String origin) { origin = origin.replace('{', '('); origin = origin.replace('}', ')'); origin = origin.replace('[', '<'); origin = origin.replace(']', '>'); return origin; } protected static String decode(String encoded) { encoded = encoded.replace('(', '{'); encoded = encoded.replace(')', '}'); encoded = encoded.replace('<', '['); encoded = encoded.replace('>', ']'); return encoded; } }