Android 中的对话列表

Conversation Lists in Android

在 Android 方面,我完全是个新手,我一生中从未接触过一段 Android 代码。本学期我正尝试在 Android 为我的软件工程项目构建一个 SMS 应用程序(是的,教授要求构建这个 SMS 应用程序)。他只给了我们 2 周的时间来完成这个项目,他期待完整的软件开发过程、github 文档、团队中每个人的协作,等等。

我在团队中的具体任务是实现类似于任何股票默认 SMS 消息传递应用程序的对话列表。任何人都可以提供有关如何构建对话列表(例如股票 SMS 应用程序中的对话列表)的分步指南吗?我的意思是告诉我要实施哪些部分,何时何地。不一定是任何特定代码,除非它是我可能无法在 2 周内弄清楚的东西。

我恳请各位专家帮助我,并指出我需要实施的正确方向,因为时间太短了。将不胜感激。

提前致谢!

以下是执行此操作所需了解的细分任务列表:

//显示消息列表 1.什么是对象 2.如何填充所述对象的列表 3.如何在Android

的ListView中显示一个列表

//发送消息 1. 如何添加带有 TextView/EditText 和按钮的新屏幕 2. 如何将按钮绑定到 Intent (不确定您是否需要执行服务器代码来发送消息 - 这对于两周的项目来说太多了)

//接收消息 //再次-服务器代码

这些示例和教程中的每一个都可以通过简单的Google搜索

找到

两周的时间不多,所以我假设范围会有所限制:

  • 显示对话列表
  • 显示每个对话的消息列表
  • 能够发送和接收消息

我还假设您不必处理彩信,可以只使用短信。

幸运的是,Google 发布了两个开源的消息应用程序——旧的 "Mms" 应用程序和新的 "Messaging" 应用程序:

https://android.googlesource.com/platform/packages/apps/Mms/ https://android.googlesource.com/platform/packages/apps/Messaging/

深入研究这些代码库可能有点令人生畏,尤其是新的消息应用程序,但旧版彩信应用程序为您提供了许多构建块。

简而言之,您需要:

  • 设置权限并创建 BroadcastReceiver 来处理 SMS 发送意图(传入的 SMS)。一个小贴士是阅读一些关于 Android 中的 "Default SMS app" 的含义:http://android-developers.blogspot.se/2013/10/getting-your-sms-apps-ready-for-kitkat.html
  • 从意图中读取 SmsMessage 对象。挑选出零件并将这些值存储到 SmsProvider(参见 Telephony.java 中的 public API)。如果消息线程(对话)尚不存在,您可能需要创建它。
  • 使用列表视图和游标适配器构建一个 activity 以从 SmsProvider 加载对话(线程)。
  • 在适配器中,处理游标数据并创建表示对话数据的视图,例如收件人、时间戳和片段。然后这些将显示在列表视图中。
  • 使用列表视图和游标适配器创建另一个 activity(或片段)以从 SmsProvider 加载消息。可能会使用 CursorLoader,但可能需要一些时间来弄清楚如何设置它们。
  • 与之前的适配器一样,处理游标数据并生成表示消息的视图。
  • 在显示对话消息的 activity/fragment 中,创建一个 EditText,用户可以在其中键入消息,并创建一个按钮来处理发送命令。 SmsManager.java 是用于发送短信的 public API。如果适配器设置正确(这对于 CursorLoader 非常方便,但您也可以对提供者进行手动查询),它将收到通知并为新消息创建新视图。