簡體   English   中英

SmsSentStatus 方法接收 null 而不是 PhoneNumber

[英]SmsSentStatus method receives null instead of PhoneNumber

以前我使用 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

問題是我得到的 PhoneNumber 總是空的,我不知道如何確定哪個號碼收到了消息。 這發生在我使用 SendLargeSms 而不是 PhoneSms 對象的 send 方法之后。我找不到問題,因為 SendLargeSms 代碼似乎使用的是 Java 方法。謝謝

我自己解決了,謝謝

Sub SendLargeSms(Destination As String, Message As String , send_code 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", "")
   i.PutExtra("mobile",Destination)
   i.PutExtra("send_code",send_code)
   Dim pi As JavaObject
   pi = pi.InitializeStatic("android.app.PendingIntent").RunMethod("getBroadcast", _
     Array(ctxt, 0, i, 134217728))


    'Adding sms deliver 

   Dim i2 As Intent
   i2.Initialize("b4a.smsdelivered", "")
   i2.PutExtra("mobile",Destination) 
   i2.PutExtra("send_code",send_code)
   Dim pi2 As JavaObject
   pi2 = pi2.InitializeStatic("android.app.PendingIntent").RunMethod("getBroadcast", _
     Array(ctxt, 0, i2, 134217728))

   Dim al As JavaObject
   al.InitializeNewInstance("java.util.ArrayList", Null)
   al.RunMethod("add", Array(pi))
   al.RunMethod("add", Array(pi2))
   smsManager.RunMethod("sendMultipartTextMessage", Array(Destination, Null, parts, al, Null))
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM