如何以编程方式从Android设备读取RCS消息

时间:2016-08-03 06:46:07

标签: android sms messaging mms

我的应用程序基本上将SMS和MMS备份到云服务器。我使用下面的URI从数据库中检索数据。

  

SMS- Uri uri = Uri.parse(“content:// sms /”);

  

MMS-Uri uri = Uri.parse(“content:// mms /”);

在测试我的应用程序的几天前,我注意到从SQLite检索时丢失了一些消息(SMS和MMS)。在做了一些研究之后,我发现那些是RCS(Rich Communication Services)消息。现在我的挑战是阅读RCS消息(SMS和MMS)。 有没有办法在Android中阅读RCS(Rich Communication Services)消息? 我需要使用什么URI来读取RCS(Rich Communication Services)消息?

提前致谢。

1 个答案:

答案 0 :(得分:0)

根据此(https://9to5google.com/2019/02/22/android-q-rcs-api-delay/),最早在Android R之前,将没有开发人员可访问的RCS消息API。


目前还没有一种方法(缺少一些特定于供应商的API),但是如果代码提交可以指示Android的发展方向,则正在以编程方式支持与RCS的接口…https://android-review.googlesource.com/c/platform/frameworks/base/+/849669

相关的类仍在实现中,但看起来(暂时)您将依赖这些类:

  • public static boolean onFloor; public void tick() { if(Main.isStarted()) { floor(); if(!onFloor) { Player.setVelY(20); }else { Player.setVelY(0); } } } private void floor() { clamp(0, 5000, 824, "f"); clamp(5000, 10000, 750, "p"); } private void clamp(int start, int stop, int minY, String type) { if(x > start && x < stop) { if(Player.getY() != minY) { if(Player.getY() > minY) { if(type != "p") { Player.setY(minY); Player.setVelY(0); onFloor = true; return; } } if(!Player.jumping) { Player.setVelY(10); onFloor = false; } }else if(Player.getY() == minY) { Player.setY(minY); Player.setVelY(0); onFloor = true; }else if(Player.getY() > minY) { if(type != "p") { Player.setY(minY); Player.setVelY(0); } } } }
  • RcsParticipant
  • RcsThread(扩展Rcs1To1Thread
  • RcsThread(扩展RcsGroupThread
  • RcsThread
  • RcsMessage(扩展RcsIncomingMessage
  • RcsMessage(扩展RcsOutgoingMessage
  • RcsMessage
  • RcsPart(扩展RcsFileTransferPart
  • RcsPart(扩展RcsLocationPart
  • RcsPart(扩展RcsMultiMediaPart
  • RcsPart(扩展RcsTextPart

这个code在说:

RcsPart