【发布时间】:2017-10-16 07:31:45
【问题描述】:
以前我使用PhoneSms.send方法发送一个部分消息,一切都很好,现在我得到了以下用于发送多部分消息的Sub:
Sub SendLargeSms(Destination As String, Message As String)
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim smsManager As JavaObject
smsManager = smsManager.InitializeStatic("android.telephony.SmsManager").RunMethod("getDefault", Null)
Dim parts As Object = smsManager.RunMethod("divideMessage", Array(Message))
Dim i As Intent
i.Initialize("b4a.smssent", "")
Dim pi As JavaObject
pi = pi.InitializeStatic("android.app.PendingIntent").RunMethod("getBroadcast", _
Array(ctxt, 0, i, 134217728))
Dim al As JavaObject
al.InitializeNewInstance("java.util.ArrayList", Null)
al.RunMethod("add", Array(pi))
smsManager.RunMethod("sendMultipartTextMessage", Array(Destination, Null, parts, al, Null))
End Sub
我正在使用以下方法来捕获短信状态:
Sub check_SmsSentStatus (Success As Boolean, ErrorMessage As String, PhoneNumber As String, Intent As Intent)
If Success=False Then
Starter.sql.ExecNonQuery2( "update report set `message`=?,`status`=?,`date`=?
where mobile=? and send_code=?" , Array As
Object(ErrorMessage,"-1",DateTime.Date(DateTime.Now),PhoneNumber,send_code) )
Else
Starter.sql.ExecNonQuery2( "update report set `message`=?,`status`=?,`date`=?
where mobile=? and send_code=?" , Array As
Object("Sent","1",DateTime.Date(DateTime.Now),PhoneNumber,send_code) )
End If
End Sub
问题是我得到的电话号码总是为空,我不知道如何确定哪个号码收到了消息。 这发生在我使用 SendLargeSms 而不是 PhoneSms 对象的 send 方法之后。我找不到问题,因为 SendLargeSms 代码似乎使用 Java 方法。谢谢
【问题讨论】:
标签: java android basic4android