安装环境
电脑,安卓 都行。
作用
写任何定制插件都可以实现发送qq消息和微信消息通知。
代码
常量信息
public interface MsgTypeConstant {
String nickname = "nickname";
String extstr="extstr";
public final static String ACTION_MSG = "insert/msg";//表示这目录下面所有
String AUTHORITY = "cn.qssq666.robot";
String AUTHORITY_CONTENT = "content://" + AUTHORITY;
public final static String ACTION_GAD = "insert/gad";//表示这目录下面所有
public final static String ACTION_KICK = "insert/kick";
public final static String ERROR_JSON = "{'msg':'error',code:-1}";
String istroop = "istroop";
String version = "version";
String time = "time";
String senderuin = "senderuin";
String frienduin = "frienduin";
String selfuin = "selfuin";
String type = "type";
String code = "code";
String apptype="apptype";
String extrajson="extrajson";
String msg = "msg";
int MSG_TYPE_TEXT = -1000;
int MSG_TYPE_SHUOSHUO = -2015;
int MSG_TYPE_PIC = -2000;
int MSG_TYPE_PIC_WITH_TEXT = -1035;
int MSG_TYPE_REDPACKET = -2025;
int MSG_TYPE_REDPACKET_1 = -2500;
代码
Uri uri = Uri.withAppendedPath(Uri.parse(MsgTypeConstant.AUTHORITY_CONTENT), “insert/msg”);
Log.w(TAG, "sendMsg:" + uri.toString());
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, senderuin);//qq号码或者微信号码
values.put(MsgTypeConstant.selfuin, selfuin);//机器人自身的QQ号码,微信可以不填写
values.put(MsgTypeConstant.frienduin, frienduin);//如果是群聊则是群号,否则填写QQ号码
int MSG_TYPE_TEXT = -99999;//文本消息
int type=MSG_TYPE_TEXT ;
values.put(MsgTypeConstant.type, type);
values.put(MsgTypeConstant.apptype, "test");
values.put(MsgTypeConstant.time, new Date().getTime());
values.put(MsgTypeConstant.istroop, istroop);//istroop =1代表群消息,否则代表私聊消息
Uri insert = resolver.insert(uri, values);// 确保机器人已打开,正常情况下,回双向守护不会轻易宕机
代码
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;
}
}
,2.0.5理论上可以省略使用空字符串代替,而且必须使用此版本以及以上才支持。