PDA

View Full Version : دريافت و ارسال پيامک



ParsaNM
دوشنبه 23 شهریور 1394, 00:57 صبح
دوستان عزيز
من مي خواهم توسط يک گوشي موبايل اندرويدي يک پیام را ارسال کنم و تمام پيامهاي دريافتي رو مشاهده کنم.
در مورد اول يعني ارسال موفق شدم و از کد زير استفاده کردم ... ولي براي دريافت مشکل دارم لطفا راهنمايي کنيد:(کلا نميدونم از چه کلاسي بايذ استفاده کرد و چگونه)


procedure TForm1.Button1Click(Sender: TObject);var
smsManager: JSmsManager;
smsTo: JString;
target,messagestr:string;
begin
messagestr:='helloooo';
target:='09021014232';
smsManager:= TJSmsManager.JavaClass.getDefault;
smsTo:= StringToJString(target);
smsManager.sendTextMessage(smsTo, nil, StringToJString(messagestr), nil, nil);


end;

arman.m.80
دوشنبه 23 شهریور 1394, 11:14 صبح
function tform1.FetchSms:string;
var
uri_del: Jnet_Uri;
cursor: JCursor;
uri: Jnet_Uri;
address,person,msgdatesent,protocol,msgread,msgsta tus,msgtype,
msgreplypathpresent,subject,body,
servicecenter,locked,smsid:string;
msgunixtimestampms:int64;
addressidx,personidx,msgdateidx,msgdatesentidx,pro tocolidx,msgreadidx,
msgstatusidx,msgtypeidx,msgreplypathpresentidx,sub jectidx,bodyidx,
servicecenteridx,lockedidx,id_smsid:integer;
Res,strr,str:string;
label sss;
begin


uri:=StrToJURI('content://sms/inbox');
cursor := SharedActivity.getContentResolver.query(uri, nil, nil,nil,nil);
id_smsid:= cursor.getColumnIndex(StringToJstring('_id'));
addressidx:=cursor.getColumnIndex(StringToJstring( 'address')); //شماره موبایل فرستنده
personidx:=cursor.getColumnIndex(StringToJstring(' person'));
msgdateidx:=cursor.getColumnIndex(StringToJstring( 'date'));
msgdatesentidx:=cursor.getColumnIndex(StringToJstr ing('date_sent'));
protocolidx:=cursor.getColumnIndex(StringToJstring ('protocol'));
msgreadidx:=cursor.getColumnIndex(StringToJstring( 'read'));
msgstatusidx:=cursor.getColumnIndex(StringToJstrin g('status'));
msgtypeidx:=cursor.getColumnIndex(StringToJstring( 'type'));
msgreplypathpresentidx:=cursor.getColumnIndex(Stri ngToJstring('reply_path_present'));
subjectidx:=cursor.getColumnIndex(StringToJstring( 'subject'));
bodyidx:=cursor.getColumnIndex(StringToJstring('bo dy')); //متن ام ام اس
servicecenteridx:=cursor.getColumnIndex(StringToJs tring('service_center'));
lockedidx:=cursor.getColumnIndex(StringToJstring(' locked'));
while (cursor.moveToNext) do begin
address:=JStringToString(cursor.getString(addressi dx)); //شماره موبایل فرستنده
smsid:=JStringToString(cursor.getString(id_smsid)) ;
person:=JStringToString(cursor.getString(personidx ));
msgunixtimestampms:=cursor.getLong(msgdateidx);
msgdatesent:=JStringToString(cursor.getString(msgd atesentidx));
protocol:=JStringToString(cursor.getString(protoco lidx));
msgread:=JStringToString(cursor.getString(msgreadi dx));
msgstatus:=JStringToString(cursor.getString(msgsta tusidx));
msgtype:=JStringToString(cursor.getString(msgtypei dx));
msgreplypathpresent:=JStringToString(cursor.getStr ing(msgreplypathpresentidx));
subject:=JStringToString(cursor.getString(subjecti dx));
body:=JStringToString(cursor.getString(bodyidx)); //متن ام ام اس
servicecenter:=JStringToString(cursor.getString(se rvicecenteridx));
locked:=JStringToString(cursor.getString(lockedidx ));
strr:=Edit1.Text;
if address='+98'+ strr.Substring(1) then
begin
goto sss;
end;
if address=Edit1.Text then
begin
sss:
str:=body;
uri_del:= StrToJURI('content://sms');
Application.ProcessMessages;
Sleep(1000);
SharedActivity.getContentResolver.delete(uri_del, StringToJString('_ID=' + smsid), nil);// باشد edit1 پاک کردن اس ام اسی که شماره موبایلش برابر
Sleep(1000);
Result := str;//متن اس ام اس را باز میگرداند
end;
end;
end;





















uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.Helpers.Android,
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.Net,
Androidapi.JNI.JavaTypes,
Androidapi.JNI.Telephony, FMX.Edit,
FMX.Layouts, FMX.Memo, FMX.Ani,Androidapi.JNI.Provider,FMX.Platform,Syste m.Diagnostics,
FMX.Objects, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdExplicitTLSClientServerBase, IdFTP;






همین متن اس ام اس و نام فرستنده کارتو راه می اندازه.:چشمک: