大陆安卓手机接收MT推送的一个解决方案

要添加评论,请登录注册
Limons
24
Limons  

需求:ea或者指标发送的提醒即时到达用户的安卓手机

背景:一方面google部分服务无法连接,导致MT安卓版无法获取MetaQuotes ID,进而MT的通知功能无法推送到手机;另一方面即使架梯子得到ID,由于google的FCM在大陆不稳定,也不能满足要求。

解决方案:
1、换苹果手机。(本人没测试,需要苹果用户帮忙验证)
2、使用MT的邮件通知功能。

关于解决方案2的两种操作:
操作一:也是最简洁的常规思路。MT电脑版设置好SMTP服务后,手机通过Android内置的exchang服务或者各大邮箱的独立app接受推送。但是事实证明,可能因为使用国内邮箱推送的用户太少,这个最简洁的路径大厂疏于维护,少数情况下延迟很严重。
操作二:也是我今天发帖的主要目的。通过QQ信箱和微信里的QQ邮件提醒,来曲线获得MT的推送。事实证明,推送的稳定性和及时性大为改善。

具体操作方法:
1、登录QQ信箱,开启SMTP服务,并且获得授权码(授权码很关键)。
2、在MT电脑版的邮件设置里,按照QQ邮件的帮助文件设置SMTP,密码一栏不要填写自己的密码,要填写授权码!
3、打开手机微信,设置-通用-辅助功能,开启QQ邮箱提醒。(我的QQ号就是微信号所以直接连接上了,其它情况需要看官自己找资料解决)
4、在自己的MQL程序中使用SendMail()函数(如下所示)
5、如果一切无误,在MT的设置界面点击测试后,微信上应该立刻受到推送的提醒了。

void doAlert(datetime current, string txt)
  {
   static datetime pastt;
   static string pasttxt;
   //--- 超过参数指定的间隔,就复位一次,也就是说同样的提醒内容在指定间隔外可以重复提醒。
   if(TimeCurrent() > pastt) pasttxt="";
   if(pasttxt != StringSubstr(txt,0,6))
     {
      //--- 硬约束,遇到第一声警报后,同样的提醒在5分钟内保持静默。
      pastt=TimeCurrent()+300;
      pasttxt=StringSubstr(txt,0,6);
      Print(txt);
      PlaySound("request.wav");
      //SendNotification(txt);
      //Alert(txt);
      SendMail(txt,txt);
     }
  }


要添加评论,请登录注册