發(fā)送短短信

發(fā)送短信.jpg

1.sendTextMessage

frameworks\base\telephony\java\android\telephony\SmsManager.java

public void sendTextMessage(String destinationAddress, String scAddress, String text,PendingIntent sentIntent, PendingIntent deliveryIntent) {
  sendTextMessageInternal(destinationAddress, scAddress, text, sentIntent, deliveryIntent,true /* persistMessage*/);
}

2.sendTextMessageInternal

frameworks\base\telephony\java\android\telephony\SmsManager.java

private void sendTextMessageInternal(String destinationAddress, String scAddress,
            String text, PendingIntent sentIntent, PendingIntent deliveryIntent,
            boolean persistMessage) {
        if (TextUtils.isEmpty(destinationAddress)) {
            throw new IllegalArgumentException("Invalid destinationAddress");
        }

        if (TextUtils.isEmpty(text)) {
            throw new IllegalArgumentException("Invalid message body");
        }

        try {
            ISms iccISms = getISmsServiceOrThrow();
            iccISms.sendTextForSubscriber(getSubscriptionId(), ActivityThread.currentPackageName(),
                    destinationAddress,
                    scAddress, text, sentIntent, deliveryIntent,
                    persistMessage);
        } catch (RemoteException ex) {
            // ignore it
        }
}

3.sendTextForSubscriber

frameworks\opt\telephony\src\java\com\android\internal\telephony\UiccSmsController.java

public void sendTextForSubscriber(int subId, String callingPackage, String destAddr,
            String scAddr, String text, PendingIntent sentIntent, PendingIntent deliveryIntent,
            boolean persistMessageForNonDefaultSmsApp) {
        IccSmsInterfaceManager iccSmsIntMgr = getIccSmsInterfaceManager(subId);
        if (iccSmsIntMgr != null) {
            iccSmsIntMgr.sendText(callingPackage, destAddr, scAddr, text, sentIntent,
                    deliveryIntent, persistMessageForNonDefaultSmsApp);
        } else {
            Rlog.e(LOG_TAG,"sendTextForSubscriber iccSmsIntMgr is null for" +
                          " Subscription: " + subId);
            sendErrorInPendingIntent(sentIntent, SmsManager.RESULT_ERROR_GENERIC_FAILURE);
        }
}

4.sendText

frameworks\opt\telephony\src\java\com\android\internal\telephony\IccSmsInterfaceManager.java

public void sendText(String callingPackage, String destAddr, String scAddr,
            String text, PendingIntent sentIntent, PendingIntent deliveryIntent,
            boolean persistMessageForNonDefaultSmsApp) {
        mPhone.getContext().enforceCallingPermission(
                Manifest.permission.SEND_SMS,
                "Sending SMS message");
        sendTextInternal(callingPackage, destAddr, scAddr, text, sentIntent, deliveryIntent,
            persistMessageForNonDefaultSmsApp);
}

5.sendTextInternal

frameworks\opt\telephony\src\java\com\android\internal\telephony\IccSmsInterfaceManager.java

private void sendTextInternal(String callingPackage, String destAddr, String scAddr,
            String text, PendingIntent sentIntent, PendingIntent deliveryIntent,
            boolean persistMessageForNonDefaultSmsApp) {
        
        if (mAppOps.noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(),
                callingPackage) != AppOpsManager.MODE_ALLOWED) {
            return;
        }
        if (!persistMessageForNonDefaultSmsApp) {
            enforcePrivilegedAppPermissions();
        }
        destAddr = filterDestAddress(destAddr);
        mDispatcher.sendText(destAddr, scAddr, text, sentIntent, deliveryIntent,
                null/*messageUri*/, callingPackage, persistMessageForNonDefaultSmsApp);
}

6.sendText

frameworks\opt\telephony\src\java\com\android\internal\telephony\ImsSMSDispatcher.java

public void sendText(String destAddr, String scAddr, String text, PendingIntent sentIntent,
            PendingIntent deliveryIntent, Uri messageUri, String callingPkg,
            boolean persistMessage) {
        Rlog.d(TAG, "sendText");
        if (isCdmaMo()) {
            mCdmaDispatcher.sendText(destAddr, scAddr,
                    text, sentIntent, deliveryIntent, messageUri, callingPkg, persistMessage);
        } else {
            mGsmDispatcher.sendText(destAddr, scAddr,
                    text, sentIntent, deliveryIntent, messageUri, callingPkg, persistMessage);
        }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市倒戏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌傍念,老刑警劉巖葛闷,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阳仔,居然都是意外死亡扣泊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門评矩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阱飘,“玉大人,你說我怎么就攤上這事沥匈。” “怎么了弱恒?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵棋恼,是天一觀的道長锈玉。 經(jīng)常有香客問我义起,道長,這世上最難降的妖魔是什么椅棺? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任齐蔽,我火速辦了婚禮,結(jié)果婚禮上诱渤,老公的妹妹穿的比我還像新娘谈况。我一直安慰自己,他們只是感情好碑韵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布祝闻。 她就那樣靜靜地躺著,像睡著了一般治筒。 火紅的嫁衣襯著肌膚如雪舷蒲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天堤框,我揣著相機(jī)與錄音纵柿,去河邊找鬼。 笑死沟使,一個胖子當(dāng)著我的面吹牛渊跋,可吹牛的內(nèi)容都是我干的着倾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼卡者,長吁一口氣:“原來是場噩夢啊……” “哼客们!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恒傻,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤凄敢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后扑庞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拒逮,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年栅隐,在試婚紗的時候發(fā)現(xiàn)自己被綠了玩徊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡泣棋,死狀恐怖畔塔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情把敢,我是刑警寧澤谅辣,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站桑阶,受9級特大地震影響熙尉,放射性物質(zhì)發(fā)生泄漏搓扯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一铅歼、第九天 我趴在偏房一處隱蔽的房頂上張望换可。 院中可真熱鬧,春花似錦沾鳄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至篙骡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間尿褪,已是汗流浹背得湘。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忽刽,地道東北人夺欲。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓些阅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親市埋。 傳聞我的和親對象是個殘疾皇子恕刘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,693評論 0 3
  • 1. 應(yīng)用進(jìn)程 從點(diǎn)擊撥號按鈕流程說起packages/apps/Dialer/src/com/android/d...
    小的橘子閱讀 4,108評論 3 1
  • 話說,接手項(xiàng)目老舊托呕,使用新架構(gòu)受阻,又時間較充裕馅扣,手賤升級之,結(jié)果問題多多差油,一路披荊斬棘苦不堪言任洞,這日終于走出叢林...
    AndroidTalent閱讀 3,748評論 0 1
  • 1 進(jìn)程啟動過程 Android應(yīng)用程序框架層創(chuàng)建的應(yīng)用程序進(jìn)程具有兩個特點(diǎn),一是進(jìn)程的入口函數(shù)是Activit...
    Kevin_Junbaozi閱讀 3,842評論 0 23
  • 叮鈴鈴……上課鈴響起公罕!掃視教室發(fā)現(xiàn)金銘耀销、天豪、祺棟熊尉、得勝、奕?位置上依然空空狰住。 “他們?nèi)四兀渴侨ソ铀藛?..
    小柚子_6a79閱讀 793評論 0 4