package com.whf.messagerelayer.service; import android.app.IntentService; import android.content.Intent; import android.os.IBinder; import android.provider.Telephony; import android.util.Log; import android.widget.Toast; import com.whf.messagerelayer.bean.Contact; import com.whf.messagerelayer.confing.Constant; import com.whf.messagerelayer.utils.EmailRelayerManager; import com.whf.messagerelayer.utils.NativeDataManager; import com.whf.messagerelayer.utils.SmsRelayerManager; import com.whf.messagerelayer.utils.db.DataBaseManager; import java.util.ArrayList; import java.util.Set; public class SmsService extends IntentService { private NativeDataManager mNativeDataManager; private DataBaseManager mDataBaseManager; public SmsService() { super("SmsService"); } public SmsService(String name) { super(name); } @Override protected void onHandleIntent(Intent intent) { mNativeDataManager = new NativeDataManager(this); mDataBaseManager = new DataBaseManager(this); String mobile = intent.getStringExtra(Constant.EXTRA_MESSAGE_MOBILE); String content = intent.getStringExtra(Constant.EXTRA_MESSAGE_CONTENT); Set<String> keySet = mNativeDataManager.getKeywordSet(); ArrayList<Contact> contactList = mDataBaseManager.getAllContact(); //无转发规则 if (keySet.size() == 0 && contactList.size() == 0) { relayMessage(content); } else if (keySet.size() != 0 && contactList.size() == 0) {//仅有关键字规则 for (String key : keySet) { if (content.contains(key)) { relayMessage(content); break; } } } else if (keySet.size() == 0 && contactList.size() != 0) {//仅有手机号规则 for (Contact contact : contactList) { if (contact.getContactNum().equals(mobile)) { relayMessage(content); break; } } } else {//两种规则共存 out: for (Contact contact : contactList) { if (contact.getContactNum().equals(mobile)) { for (String key : keySet) { if (content.contains(key)) { relayMessage(content); break out; } } } } } } private void relayMessage(String content) { String suffix = mNativeDataManager.getContentSuffix(); String prefix = mNativeDataManager.getContentPrefix(); if(suffix!=null){ content = content+suffix; } if(prefix!=null){ content = prefix+content; } if (mNativeDataManager.getSmsRelay()) { SmsRelayerManager.relaySms(mNativeDataManager, content); } if (mNativeDataManager.getEmailRelay()) { EmailRelayerManager.relayEmail(mNativeDataManager, content); } } @Override public void onDestroy() { mDataBaseManager.closeHelper(); super.onDestroy(); } }