SmsManager.SendDataMessage 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發送基於資料的簡訊到特定的應用程式埠口。
[Android.Runtime.Register("sendDataMessage", "(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V", "")]
public void SendDataMessage(string? destinationAddress, string? scAddress, short destinationPort, byte[]? data, Android.App.PendingIntent? sentIntent, Android.App.PendingIntent? deliveryIntent);
[<Android.Runtime.Register("sendDataMessage", "(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V", "")>]
member this.SendDataMessage : string * string * int16 * byte[] * Android.App.PendingIntent * Android.App.PendingIntent -> unit
參數
- destinationAddress
- String
要傳送訊息的地址
- scAddress
- String
是服務中心地址或空,使用當前預設的 SMSC
- destinationPort
- Int16
傳送訊息的埠口
- data
- Byte[]
要發送的訊息內容
- sentIntent
- PendingIntent
若非 NULL PendingIntent ,則在訊息成功傳送或失敗時廣播。
結果代碼會是Activity.RESULT_OK成功,或以下錯誤之一:<br>RESULT_ERROR_GENERIC_FAILURE<brRESULT_ERROR_RADIO_OFF<>br br>RESULT_ERROR_FDN_CHECK_FAILURE<><<RESULT_ERROR_SHORT_CODE_NOT_ALLOWED>RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED<>RESULT_RADIO_NOT_AVAILABLERESULT_ERROR_LIMIT_EXCEEDED><RESULT_NETWORK_REJECT<>RESULT_INVALID_ARGUMENTS<>RESULT_INVALID_STATE>RESULT_SYSTEM_ERROR><<RESULT_INVALID_SMS_FORMAT>><RESULT_MODEM_ERRORRESULT_NO_MEMORY<><><RESULT_ENCODING_ERROR<RESULT_OPERATION_NOT_ALLOWED>RESULT_NETWORK_ERROR<>RESULT_INVALID_SMSC_ADDRESS>>RESULT_ERROR_NULL_PDU<>RESULT_ERROR_NO_SERVICE<<BR>RESULT_INTERNAL_ERROR<BR>BR>>RESULT_SMS_BLOCKED_DURING_EMERGENCY<><<RESULT_INVALID_BLUETOOTH_ADDRESS>RESULT_BLUETOOTH_DISCONNECTED<>RESULT_UNEXPECTED_EVENT_STOP_SENDINGRESULT_NO_BLUETOOTH_SERVICE><RESULT_SMS_SEND_RETRY_FAILED<>RESULT_REMOTE_EXCEPTION<>RESULT_NO_DEFAULT_SMS_APP><>RESULT_RIL_RADIO_NOT_AVAILABLE<RESULT_RIL_SMS_SEND_FAIL_RETRY<><RESULT_RIL_NETWORK_REJECTRESULT_RIL_NO_MEMORY<><RESULT_RIL_INVALID_ARGUMENTS>><RESULT_RIL_INVALID_STATERESULT_RIL_REQUEST_RATE_LIMITED><RESULT_REQUEST_NOT_SUPPORTED<>><RESULT_RIL_SYSTEM_ERRRESULT_RIL_INVALID_SMS_FORMAT<><>RESULT_RIL_ENCODING_ERRRESULT_CANCELLED><RESULT_NO_RESOURCES<>RESULT_RIL_INVALID_SMSC_ADDRESS<br>RESULT_RIL_MODEM_ERR<br brRESULT_RIL_NETWORK_ERR<>br>RESULT_RIL_INTERNAL_ERR<brRESULT_RIL_REQUEST_NOT_SUPPORTED<>><RESULT_RIL_OPERATION_NOT_ALLOWED>RESULT_RIL_NO_RESOURCES<RESULT_RIL_NETWORK_NOT_READY><<RESULT_RIL_INVALID_MODEM_STATE>>RESULT_RIL_CANCELLEDRESULT_RIL_SIMULTANEOUS_SMS_AND_CALL_NOT_ALLOWED><<>RESULT_RIL_SIM_ABSENTRESULT_RIL_ACCESS_BARRED<><RESULT_RIL_BLOCKED_DUE_TO_CALL<>> 對於RESULT_ERROR_GENERIC_FAILURE任何RESULT_RIL錯誤,sentIntent 可能會包含額外的「errorCode」,其中包含無線電技術特定的值,通常只適用於正在排查。<BR>
- deliveryIntent
- PendingIntent
若非 NULL PendingIntent ,則在訊息送達接收端時即廣播此訊息。 狀態報告的原始 PDU 則在擴展資料(「pdu」)中。
- 屬性
例外狀況
若 destinationAddress 或資料為空
備註
發送基於資料的簡訊到特定的應用程式埠口。
<強>注意:</strong> 使用此方法需要你的應用程式取得權限 android.Manifest.permission#SEND_SMS 。
<strong>Note:</strong> 如果 #getDefault() 使用 在多 SIM 裝置上實例化此管理器,此操作可能會因找不到合適的預設訂閱而失敗,無法發送簡訊。 此時若sentIntent非空,則PendingIntent會以錯誤碼RESULT_ERROR_GENERIC_FAILURE及包含布林值true的額外字串"noDefault"傳送。 關於此操作可能失敗的條件,請參見 #getDefault() 相關資訊。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。