1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| package cn.qssq666.main;
import android.content.ContentResolver; import android.content.ContentValues; import android.net.Uri;
import java.util.Date;
public class MsgHelper { public static Uri sendQQMsg(ContentResolver contentResolver, String robotQQ, String qq, String message){ return sendMsg(contentResolver,"插件",robotQQ,robotQQ,qq,message,0); }
/** * * @param contentResolver * @param robotQQ * @param qqgroup * @param message * @return */ public static Uri sendQQGroupMsg(ContentResolver contentResolver,String robotQQ,String qqgroup,String message){ /** * 由于是机器人自己发送消息,所以senderuin 为 机器人自身。 */ return sendMsg(contentResolver,"插件",robotQQ,robotQQ,qqgroup,message,1); }
/** * 仿造用户收到了发消息,让机器人处理。 * @param contentResolver * @param nickname * @param selfAccount * @param account * @param frienduin * @param message * @param istroop * @return */ public static Uri sendMsg(ContentResolver contentResolver, String nickname, String selfAccount, String account, String frienduin, String message, int istroop){ Uri uri = Uri.withAppendedPath(Uri.parse(MsgTypeConstant.AUTHORITY_CONTENT), "insert/msg"); ContentValues values = new ContentValues(); values.put(MsgTypeConstant.msg, message);//消息内容 values.put(MsgTypeConstant.nickname, nickname);//昵称 values.put(MsgTypeConstant.time, new Date().getTime() / 1000); values.put(MsgTypeConstant.senderuin, account);//qq号码或者微信号码 values.put(MsgTypeConstant.selfuin, selfAccount);//机器人自身的QQ号码,微信可以不填写 values.put(MsgTypeConstant.frienduin, frienduin);//如果是群聊则是群号,否则填写QQ号码 int MSG_TYPE_TEXT = -1000;//文本消息 int type=MSG_TYPE_TEXT ; values.put(MsgTypeConstant.type, type); values.put(MsgTypeConstant.apptype, "test"); // values.put(MsgTypeConstant.apptype, "proxy_send_msg");//这导致机器人会发重复的话。这是控制机器人发话的,因此不能用这个, values.put(MsgTypeConstant.time, new Date().getTime()); values.put(MsgTypeConstant.istroop, istroop);//istroop =1代表群消息,否则代表私聊消息 Uri insert = contentResolver.insert(uri, values);// 确保机器人已打开,正常情况下,回双向守护不会轻易宕机 return insert; }
/** * 让机器人发消息。 * @param contentResolver * @param nickname * @param selfAccount * @param account * @param frienduin * @param message * @param istroop * @return */ public static Uri robotSendMsg(ContentResolver contentResolver, String nickname, String selfAccount, String account, String frienduin, String message, int istroop){ Uri uri = Uri.withAppendedPath(Uri.parse(MsgTypeConstant.AUTHORITY_CONTENT), "insert/msg"); ContentValues values = new ContentValues(); values.put(MsgTypeConstant.msg, message);//消息内容 values.put(MsgTypeConstant.nickname, nickname);//昵称 values.put(MsgTypeConstant.time, new Date().getTime() / 1000); values.put(MsgTypeConstant.senderuin, account);//qq号码或者微信号码 values.put(MsgTypeConstant.selfuin, account);//让机器人自己发送消息,所以这里就是自己,全部填写自己 values.put(MsgTypeConstant.frienduin, frienduin);//如果是群聊则是群号,否则填写QQ号码 int MSG_TYPE_TEXT = -1000;//文本消息 int type=MSG_TYPE_TEXT ; values.put(MsgTypeConstant.type, type); values.put(MsgTypeConstant.apptype, "proxy_send_msg");//这是控制机器人发话的, values.put(MsgTypeConstant.time, new Date().getTime()); values.put(MsgTypeConstant.istroop, istroop);//istroop =1代表群消息,否则代表私聊消息 Uri insert = contentResolver.insert(uri, values);// 确保机器人已打开,正常情况下,回双向守护不会轻易宕机 return insert; } }
|