Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android KK上如何讓三方APK發送的SMS不顯示出來

Android KK上如何讓三方APK發送的SMS不顯示出來

編輯:關於Android編程

KK上sms framework架構做了修改,引入了default application的概念
假如手機上安裝了多個收發信息的APK,那麼必須設置一個作為default AP,只有default AP才有權限去讀寫數據庫
如果非default AP去發送彩信,發送完後Framework會將這條短信寫入數據庫

KK之前的版本,如果三方Apk去發送短信,只要這個apk不將該短信內容寫入數據庫就不會顯示。
kk之後的版本,如果三方APK去發送短信,雖然這個apk不將該短信內容寫入數據庫,但由於它並不是default AP,發送完後framework會檢測到這種情況然後將該短信寫入數據庫

以com.carrot.iceworld這個apk為例,如果不希望它發送出來的sms顯示出來,需要做以下修改:

SMSDispatcher.java --> handleSendComplete
if ((pplResult == false) && SmsApplication.shouldWriteMessageForPackage(
tracker.mAppInfo.applicationInfo.packageName, mContext)) {
// Persist it into the SMS database as a sent message
// so the user can see it in their default app.
tracker.writeSentMessage(mContext);
}
將以上的if語句修改為
if ((pplResult == false) && SmsApplication.shouldWriteMessageForPackage(
tracker.mAppInfo.applicationInfo.packageName, mContext) &&!tracker.mAppInfo.applicationInfo.packageName.equals("com.carrot.iceworld"))

如果是com.carrot.iceworld這個apk發送的短信,則不讓FW寫入到db裡
請客戶在這個if語句前加行log,將tracker.mAppInfo.applicationInfo.packageName的值打印出來以便後續debug
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved