如何阅读deliveryIntent
在这段代码中?
uses
Androidapi.JNI.JavaTypes, Androidapi.JNI.Telephony;
procedure TForm1.Button1Click(Sender: TObject);
var
smsTo: JString;
smsManager: JSmsManager;
begin
smsManager := TJSmsManager.JavaClass.getDefault;
smsTo := StringToJString(ENum.text);
PendIntent1:=TJPendingIntent.JavaClass.getBroadcast();
PendIntent2:=TJPendingIntent.JavaClass.getBroadcast();
smsManager.sendTextMessage(smsTo, nil, StringToJString(MSms.lines.text),PendIntent1,PendIntent2);
end;
因为我明白短信是消失了还是没有?
谢谢
如果您阅读了SmsManager.sendTextMessage()文档 http://developer.android.com/reference/android/telephony/SmsManager.html#sendTextMessage(java.lang.String,%20java.lang.String,%20java.lang.String,%20android.app.PendingIntent,%20android.app.PendingIntent),你应该提供你自己的Intent
对象(JIntent
在 Delphi 中)被包裹在PendingIntent
对象(JPendingIntent
在德尔福)。
所以,你会创建两个Intent
分配了所需操作字符串的对象,然后将它们包装在两个对象内PendingIntent
对象使用PendingIntent.getBroadcast() http://developer.android.com/reference/android/app/PendingIntent.html#getBroadcast(android.content.Context,%20int,%20android.content.Intent,%20int)方法 (TJPendingIntent.JavaClass.getBroadcast()
在 Delphi 中),然后将它们传递给sendTextMessage()
in the sentIntent
and deliveryIntent
参数,分别。
短信发送/失败后,Intent
里面的sentIntent
参数将被广播。如果短信成功发送给收件人,Intent
里面的deliveryIntent
参数将被广播。
处理那些Intent
对象,您需要创建并注册一个broadcastReceiver
在你的应用程序中。当您收到广播时Intent
,然后你可以检索它的action
值(参见Intent.getAction()
方法)并采取相应行动。
没有String
涉及到转换,除非你想在 Delphi 之间进行转换String
和一个安卓JString
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)