2011-03-10 174 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