如何从Android删除短信。 Rad工作室

时间:2015-04-03 20:11:41

标签: android delphi sms

如何从Android删除短信?来自Rad studio的代码。 我可以阅读消息,获取信息 - Id消息,地址,正文。 当我按下Button1时,应该删除该消息。但这并没有发生。 Android不会发布任何错误。

这不起作用。我做错了什么?

procedure TForm1.Button1Click(Sender: TObject);
var uri_del: Jnet_Uri;
begin
if listbox1.ItemIndex>-1 then begin
timer1.Enabled:=false;
cursms.close;
showmessage(sms[listbox1.ItemIndex].body);
uri_del:= StrToJURI('content://sms/');
SharedActivity.getContentResolver.delete(uri_del, StringToJString('_ID=' + sms[listbox1.ItemIndex].smsid), nil);
showmessage('Delete!');
timer1.Tag:=0;
timer1.Interval:=10;
timer1.Enabled:=true;
end;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var CallDate: Int64;
uri: Jnet_Uri;

 id_smsid: integer;
  id_smssender: integer;
  id_smsbody: integer;
begin
timer1.Enabled:=false;
if (timer1.Tag=0) then begin
uri:= StrToJURI('content://sms/');
 cursms:= SharedActivity.getContentResolver.query(uri, nil, nil, nil, nil);

 if cursms.getCount<>length(sms) then begin
 setlength(sms,0);
 timer1.Tag:=1;
 timer1.Interval:=10;
 listbox1.Clear;
 end;
end else begin

if (cursms.getCount > 0) then
if cursms.getCount>length(sms)  then begin
cursms.moveToNext;
setlength(sms,length(sms)+1);

id_smsid:= cursms.getColumnIndex(StringToJstring('_ID'));
  id_smssender:= cursms.getColumnIndex(StringToJstring('address'));
  id_smsbody:=cursms.getColumnIndex(StringToJstring('body'));

 sms[length(sms)-1].phone:=JStringToString(cursms.getString(id_smssender));
 sms[length(sms)-1].body:=JStringToString(cursms.getString(id_smsbody));
 sms[length(sms)-1].smsid:=JStringToString(cursms.getString(id_smsid));

 listbox1.Items.Add(sms[length(sms)-1].body);

end else begin
cursms.close;
timer1.Interval:=10000;
timer1.Tag:=0;
end;

end;
timer1.Enabled:=true;
end;

1 个答案:

答案 0 :(得分:1)

要修改数据库(例如删除SMS,创建线程,插入消息等),您的应用程序需要设置为设备上的默认SMS应用程序。此限制适用于KitKat。