2011-03-10 126 views
1

我是一名经验丰富的c/C++/php程序员。我是Java和Android的新手。为了让我的学习开始起步,我想修改mms源代码以删除删除短信的能力(我的孩子,12岁和14岁,拥有Android手机,并且知道他们不能删除短信应该有助于保持他们的谈话很干净!)。更具体地说,我想修改mms代码,以便您需要一个引脚来删除消息。我们所有的手机都是扎根的,所以如果需要更换整个应用程序不是问题。修改MMS以删除删除功能?

修改/创建源代码是没有问题的,我的问题更多的是正确的方法。 Android或提供了一种方法来截取用户选择删除短信的方式,以便我可以将自己的处理代码修补到单独的外部应用程序中?还是我需要直接修改和构建mms源代码并将其替换到目标设备上来完成此操作?

回答

0

您将需要直接修改Android平台源代码。

Intents提供了一种“拦截”各种用户操作并将它们路由到外部应用程序的方法。但是,如果多个应用程序可以处理一个意图,用户可以选择使用哪一个(在你的情况下是一件坏事)。即使您编写了用于接收/发送消息的自定义SMS/MMS应用程序,用户仍然可以使用默认应用程序。

+0

也许我可以制作一个单独的应用程序,它使用原始MMS应用程序的意图对mms信息进行备份,并在从原始的mms应用程序中删除它们时自动恢复条目?这不应该也防止使用第三方应用程序? – JonD 2011-03-10 17:06:59

+0

是的,这可以作为后台服务。 – dbyrne 2011-03-12 19:18:33

2

您将不得不修改存在的MMS应用程序并删除删除功能。具体在ConversationList并从菜单中删除删除。

另外,没有任何东西阻止他们从市场上下载另一个MMS应用程序,它们仍然会让他们删除文本。

+0

当然,你可以阻止他们...当你在它的时候撕掉市场的应用程序!这有助于阻止孩子们为付费应用程序浪费巨额账单。 – dbyrne 2011-03-10 16:22:20

+0

但是,第三方MMS应用程序(不是通过互联网网关执行真正的SMS)使用原始MMS应用程序的意图来提供功能性吗?这不是来自彼此的沙箱应用程序吗? – JonD 2011-03-10 18:10:16

+0

不会。他们正在听SMS(使用android.provider.Telephony.SMS_RECEIVED),就像常规应用程序一样,并在进来时做些特别的事情。从我使用外部短信应用程序的经验来看,基线应用程序的通知仍然出现在通知栏中。你最好的选择可能是安装一个短信记录器,它支持短信。所以,即使他们删除它,你仍然会有一个副本。请访问http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/index.html查看SMS示例。短信应用程序的工作方式相同。 – 2011-03-10 18:21:02