Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ] Restclient Android sürüm kararsızlığı [ÇÖZÜLDÜ]
#1
Merhaba iyi günler,
Değişik bir sorunum var Android servis yazıyorum Server kontrolu yapıp ona göre bildirim atıyorum.
Daha önce Unidac bileşenleri ile yaptığımda hiçbir sıkıntı yoktu fakat Rest bileşenleri ile yapmaya çalıştım bu sefer kendi cihazım android 8.1  de çok güzel çalışıyorken android 9 ve 10'da tepki vermiyor uygulama açık olsa bile çalışmıyor(Servis arka planda çalışmakta).
Servis Kodlarını paylaşıyorum, bu sorun sdk ayarlarından olabilirmi android 8 yüklüydü sadece şuan android 10 sdksını yükledim ama sorun halen aynı.

unit Unit3;

interface

uses
 System.SysUtils,
 System.Classes,
 System.Android.Service,
 AndroidApi.JNI.GraphicsContentViewText,
 AndroidApi.JNI.Os, System.Notification, Data.DB, MemDS, DBAccess, Uni,
 REST.Types, REST.Client, Data.Bind.Components, Data.Bind.ObjectScope ;

type
 TDMm = class(TAndroidService)
   NotificationC: TNotificationCenter;
   RESTClient1: TRESTClient;
   RESTRequest1: TRESTRequest;
   RESTResponse1: TRESTResponse;
   procedure AndroidServiceCreate(Sender: TObject);
   function AndroidServiceStartCommand(const Sender: TObject;
     const Intent: JIntent; Flags, StartId: Integer): Integer;
 private
   procedure ThreadingProcRun(const ARunProc: TProc;
     const SleepMilliSecond: Integer);
   procedure NotificationCreate;
 public
   { Public declarations }
 end;

var
 DMm: TDMm;

implementation

uses AndroidApi.JNI.App, NetworkState, RootUnit;
{%CLASSGROUP 'FMX.Controls.TControl'}
{$R *.dfm}

procedure TDMm.AndroidServiceCreate(Sender: TObject);
Var
 xNotification: TNotification;
begin

 ThreadingProcRun(NotificationCreate, 60000);

end;

function TDMm.AndroidServiceStartCommand(const Sender: TObject;
 const Intent: JIntent; Flags, StartId: Integer): Integer;
begin
 Result := TJService.JavaClass.START_STICKY;
end;

procedure TDMm.NotificationCreate;
var
aNotification: TNotification;
NS: TNetworkState;
A: TRootDTO;
begin
A := TRootDTO.Create;
NS := TNetworkState.Create;

if not NS.IsConnected then
begin
NS.Free;
exit;
end;
RESTRequest1.Execute;
A.AsJson := RESTResponse1.Content;
if A.Info = '1' then
begin
aNotification := NotificationC.CreateNotification;
try
with xNotification do
begin
AlertBody := 'Bildirim Deneme!';
NotificationC.ScheduleNotification(aNotification);
end;
finally
aNotification.DisposeOf;
end;
end;
end;


procedure TDMm.ThreadingProcRun(const ARunProc: TProc;
 const SleepMilliSecond: Integer);
begin
 TThread.CreateAnonymousThread(
   procedure()
   begin
     while True do
     begin
       ARunProc;
       Sleep(SleepMilliSecond);
     end;
   end).Start;
end;

end.
Muharrem ARSLAN
WWW
Cevapla
#2
Merhaba,
Sorunun kaynağı muhtemelen ClearTextTraffic.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
Hocam Çok teşekkür ederim
3gündür bakmadığım konu kalmamıştı Sdkları bile güncelledim sayenizde sorun çözüldü
Muharrem ARSLAN
WWW
Cevapla
#4
Hocam Arkaplanda çalışması için hangi izinleri almalıyım?
Muharrem ARSLAN
WWW
Cevapla
#5
(23-03-2020, Saat: 22:11)arsl01 Adlı Kullanıcıdan Alıntı: Hocam Arkaplanda çalışması için hangi izinleri almalıyım?

Mobil platformda, arka plan işlemi yaptığınızda bu izin işletim sistemi tarafından doğrudan veriliyor.
iOS uygulama ayarlarından sonradan kullanıcı tarafından bu izin kapatılabilir. Android için bu durum söz konusu değil. Çünkü servis farklı bir activity (servis gibi) olarak çalışıyor. iOS uygulamada servis ile ana uygulama tek uygulama olarak çalışıyor. iOS uygulama ayarlarından background mode seçeneklerinden birini seçmeniz durumunda uygulamanız bir servis gibi arka planda çalışacaktır.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#6
Anladım Fakat android cihazda uygulama ayarlarından pil tasarrufu ayarını kısıtlama yok yapmazsam servis çalışmıyor
Telefon Model:Xiaomi redmi 5 plus,Xiaom note 8
Muharrem ARSLAN
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi ile Android uygulamalarının bildirimlerini loglamak denem3 0 24 6 saat önce
Son Yorum: denem3
  Android : Tam sayfa splash ekranı nasıl yapılır ? [ GÖRSEL ANLATIM ] Mr.Developer 5 104 31-03-2020, Saat: 15:58
Son Yorum: egeven
  Android Konum Alamama KUNTAY 4 89 31-03-2020, Saat: 02:50
Son Yorum: Fesih ARSLAN
  Android deployment E0004 PAClient Hatası behcet.tolga 2 92 23-03-2020, Saat: 16:42
Son Yorum: behcet.tolga
  ( Çözüldü ) OrangeUI windows 64 bit yok mu? mfidan 10 498 20-03-2020, Saat: 23:44
Son Yorum: mfidan



Konuyu Okuyanlar: 1 Ziyaretçi