主页 > 编程资料 > Delphi >
发布时间:2015-09-22 作者:网络 阅读:202次

介绍

本文章介绍了Delphi XE5发送短信以及读取短信代码,下面通过代码脚本来介绍,不过该两段代码,没有具体测试过,有兴趣的可以测试下

1:发送短信代码

uses

  FMX.Helpers.Android,

  Androidapi.JNI.GraphicsContentViewText,

  Androidapi.JNI.Net,

  Androidapi.JNI.JavaTypes,

  Androidapi.JNI.Telephony;


procedure SendSMS (target,messagestr:string);

var

  smsManager: JSmsManager;

  smsTo: JString;

begin

  smsManager:= TJSmsManager.JavaClass.getDefault;

  smsTo:= StringToJString(target);

  smsManager.sendTextMessage(smsTo, nil, StringToJString(messagestr), nil, nil);

end;

2:读取短信信息代码

uses

  SysUtils,

  FMX.Helpers.Android,

  Androidapi.JNI.GraphicsContentViewText,

  Androidapi.JNI.Net,

  Androidapi.JNI.JavaTypes,

  Androidapi.JNI.Telephony;


function FetchSms:string;

var

  cursor: JCursor;

  uri: Jnet_Uri;

  address,person,msgdatesent,protocol,msgread,msgstatus,msgtype,

  msgreplypathpresent,subject,body,

  servicecenter,locked:string;

  msgunixtimestampms:int64;

  addressidx,personidx,msgdateidx,msgdatesentidx,protocolidx,msgreadidx,

  msgstatusidx,msgtypeidx,msgreplypathpresentidx,subjectidx,bodyidx,

  servicecenteridx,lockedidx:integer;

begin

  uri:=StrToJURI(‘content://sms/inbox’);

  cursor := SharedActivity.getContentResolver.query(uri, nil, nil,nil,nil);

  addressidx:=cursor.getColumnIndex(StringToJstring(‘address’));

  personidx:=cursor.getColumnIndex(StringToJstring(‘person’));

  msgdateidx:=cursor.getColumnIndex(StringToJstring(‘date’));

  msgdatesentidx:=cursor.getColumnIndex(StringToJstring(‘date_sent’));

  protocolidx:=cursor.getColumnIndex(StringToJstring(‘protocol’));

  msgreadidx:=cursor.getColumnIndex(StringToJstring(‘read’));

  msgstatusidx:=cursor.getColumnIndex(StringToJstring(‘status’));

  msgtypeidx:=cursor.getColumnIndex(StringToJstring(‘type’));

  msgreplypathpresentidx:=cursor.getColumnIndex(StringToJstring(‘reply_path_present’));

  subjectidx:=cursor.getColumnIndex(StringToJstring(‘subject’));

  bodyidx:=cursor.getColumnIndex(StringToJstring(‘body’));

  servicecenteridx:=cursor.getColumnIndex(StringToJstring(‘service_center’));

  lockedidx:=cursor.getColumnIndex(StringToJstring(‘locked’));

  while (cursor.moveToNext) do begin

    address:=JStringToString(cursor.getString(addressidx));

    person:=JStringToString(cursor.getString(personidx));

    msgunixtimestampms:=cursor.getLong(msgdateidx);

    msgdatesent:=JStringToString(cursor.getString(msgdatesentidx));

    protocol:=JStringToString(cursor.getString(protocolidx));

    msgread:=JStringToString(cursor.getString(msgreadidx));

    msgstatus:=JStringToString(cursor.getString(msgstatusidx));

    msgtype:=JStringToString(cursor.getString(msgtypeidx));

    msgreplypathpresent:=JStringToString(cursor.getString(msgreplypathpresentidx));

    subject:=JStringToString(cursor.getString(subjectidx));

    body:=JStringToString(cursor.getString(bodyidx));

    servicecenter:=JStringToString(cursor.getString(servicecenteridx));

    locked:=JStringToString(cursor.getString(lockedidx));

    Result:=IntToStr(trunc(msgunixtimestampms/1000))+’ ‘+address+’ ‘+body;

  end;

end;


关键字词: