Hola qué tal? Ayer llegué a tu casa tarde y no me dió tiempo de analizarlo hasta hoy en la oficina...
Intenta esto, espero que te funcione:
Código Delphi
[-]uses
{$IFDEF ANDROID}
Androidapi.JNI.Webkit, FMX.VirtualKeyboard,
Androidapi.JNI.Print, Androidapi.JNI.Util,
fmx.Platform.Android, System.Android.Notification,
Androidapi.jni,fmx.helpers.android, Androidapi.Jni.app,
Androidapi.Jni.GraphicsContentViewText, Androidapi.JniBridge,
Androidapi.JNI.Os, Androidapi.Jni.Telephony,
Androidapi.JNI.JavaTypes,Androidapi.Helpers,
Androidapi.JNI.Widget,System.Permissions, Androidapi.Jni.Embarcadero,
FMX.DialogService,Androidapi.Jni.Provider,Androidapi.Jni.Net,
fmx.TextLayout,AndroidAPI.JNI.Support,
{$ENDIF}
procedure Borra_Notifi(Id : String; FH : String); function ExtractName(const AStr: string): string;
Código Delphi
[-]
procedure TForm1.Borra_Notifi(Id, FH: String);
function DateTimeLocalToUnixMSecGMT(const ADateTime: TDateTime): Int64;
begin
Result := DateTimeToUnix(ADateTime) * MSecsPerSec - Round(TTimeZone.Local.UtcOffset.TotalMilliseconds);
end;
var
NotificationsList: TStringList;
Notifications: JString;
I: Integer;
Found: Boolean;
PreferenceEditor: JSharedPreferences_Editor;
FPreference: JSharedPreferences;
begin
if DateTimeLocalToUnixMSecGMT(Now) > DateTimeLocalToUnixMSecGMT(StrToDateTime(FH)) then
Exit;
NotificationC.RequestPermission;
FPreference := TAndroidHelper.Context.getSharedPreferences(TJNotificationAlarm.JavaClass.NOTIFICATION_CENTER, TJContext.JavaClass.MODE_PRIVATE);
NotificationsList := TStringList.Create;
try
Notifications := FPreference.getString(TJNotificationAlarm.JavaClass.SETTINGS_NOTIFICATION_IDS, nil);
NotificationsList.Text := JStringToString(Notifications);
I := 0;
Found := False;
while not Found and (I < NotificationsList.Count) do
if ExtractName(NotificationsList[i]) = Id then
Found := True
else
Inc(I);
if Found then
begin
PreferenceEditor := FPreference.edit;
try
NotificationsList.Delete(I);
PreferenceEditor.putString(TJNotificationAlarm.JavaClass.SETTINGS_NOTIFICATION_IDS, StringToJString(NotificationsList.Text));
finally
PreferenceEditor.commit;
end;
end;
finally
NotificationsList.Free;
end;
NotificationC.CancelNotification(Id);
end;