如何从Android删除短信。无线电工作室

如何从Android删除短信。无线电工作室,android,delphi,sms,Android,Delphi,Sms,如何从Android删除短信?代码来自Rad studio。 我可以阅读信息,获取信息-Id信息、地址、正文。 当我按下按钮1时,信息应该被删除。但这并没有发生。Android没有问题,也没有任何错误 这不起作用。我做错了什么? procedure TForm1.Button1Click(Sender: TObject); var uri_del: Jnet_Uri; begin if listbox1.ItemIndex>-1 then begin timer1.Enabled:=fal

如何从Android删除短信?代码来自Rad studio。 我可以阅读信息,获取信息-Id信息、地址、正文。 当我按下按钮1时,信息应该被删除。但这并没有发生。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;
procedure TForm1.按钮1点击(发送方:TObject);
var uri_del:Jnet_uri;
开始
如果listbox1.ItemIndex>-1,则开始
timer1.Enabled:=false;
克洛斯女士;
showmessage(sms[listbox1.ItemIndex].body);
uri_del:=StrToJURI('content://sms/');
SharedActivity.getContentResolver.delete(uri_del,StringToJString(''u ID='+sms[listbox1.ItemIndex].smsid),nil);
showmessage('Delete!');
timer1.标记:=0;
计时器1.间隔:=10;
timer1.Enabled:=真;
结束;
结束;
程序TForm1.FormActivate(发送方:ToObject);
开始
timer1.Enabled:=真;
结束;
程序TForm1.Timer1Timer(发送方:TObject);
var CallDate:Int64;
uri:Jnet_-uri;
id_smsid:整数;
id_smssender:整数;
id_smsbody:整数;
开始
timer1.Enabled:=false;
如果(timer1.Tag=0),则开始
uri:=StrToJURI('content://sms/');
cursms:=SharedActivity.getContentResolver.query(uri,nil,nil,nil,nil);
如果是cursms.getCountlength(sms),则开始
设置长度(sms,0);
timer1.标记:=1;
计时器1.间隔:=10;
列表框1。清除;
结束;
结束,否则开始
如果(cursms.getCount>0),则
如果cursms.getCount>length(sms),则开始
cursms.moveToNext;
设置长度(sms,长度(sms)+1);
id_-smsid:=cursms.getColumnIndex(StringToJstring(“u-id”);
id_smssender:=cursms.getColumnIndex(StringToJstring('address');
id_smsbody:=cursms.getColumnIndex(StringToJstring('body');
sms[length(sms)-1]。电话:=JStringToString(cursms.getString(id_smssender));
sms[length(sms)-1]。正文:=JStringToString(cursms.getString(id_smsbody));
sms[length(sms)-1].smsid:=JStringToString(cursms.getString(id_smsid));
listbox1.Items.Add(sms[length(sms)-1].body);
结束,否则开始
克洛斯女士;
定时器1.间隔:=10000;
timer1.标记:=0;
结束;
结束;
timer1.Enabled:=真;
结束;

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

什么版本的Android?在Kit Kat和后来的短信访问受到严格限制。