如何从 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。
如何从 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。