如何从 Android 中删除短信。拉德工作室

How delete sms message from Android. Rad studio

如何从 Android 中删除短信?来自 Rad 工作室的代码。 我可以阅读消息,获取信息 - 消息 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;

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