Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4.5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FCM Android kullanmak
#1
Lightbulb 
Merhaba. Googlei Google Cloud Messaging (GCM) yeni versiyon adıyla Firebase Cloud Messaging (FCM) androidde kullanmak istiyorum. Bazı dökümanlar buldum işe yaramadı. Aslında hata veriyor diyemiyorum. Çünkü uygulama açılıyor siyah ekranda kalıyor. Bu durum PaaS (Parse) servisini kullanıncada oluşuyor. O yüzden işin içinden çıkamıyorum.

Forma bir tane memo ve button bileşeni ekledim. Options-Entitlement List den Receive push notifications true yaptım.

Örnek kodum bu. Kaynak olarak bu Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

unit uMain;

interface

uses
 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
 FMX.Controls.Presentation, FMX.StdCtrls, FMX.ScrollBox, FMX.Memo,
 System.PushNotification, System.Notification
 {$IFDEF ANDROID}
   ,FMX.PushNotification.Android
 {$ENDIF};

type
 TMain = class(TForm)
   Button1: TButton;
   Memo1: TMemo;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
   procedure OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges);
   procedure OnReceiveNotificationEvent(Sender: TObject; const ServiceNotification: TPushServiceNotification);
   procedure ShowAndroidNotification(MessageText: string; NotificationNumber: Integer);
 public
   { Public declarations }
 end;

var
 Main: TMain;

const
 app_id = 'GCM ID';

implementation

{$R *.fmx}

{ TMain }

procedure TMain.OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges);
begin
 //Do something if the service connection changes
end;

procedure TMain.OnReceiveNotificationEvent(Sender: TObject; const ServiceNotification: TPushServiceNotification);
var
 MessageText: string;
begin
 Memo1.Lines.Add('DataKey = ' + ServiceNotification.DataKey);
 Memo1.Lines.Add('Json = ' + ServiceNotification.Json.ToString);
 Memo1.Lines.Add('DataObject = ' + ServiceNotification.DataObject.ToString);
{$IFDEF ANDROID}
 MessageText := ServiceNotification.DataObject.GetValue('gcm.notification.body').Value;
{$ENDIF};
 Memo1.Lines.Add(DateTimeToStr(Now) + ' Message = ' + MessageText);
 ShowAndroidNotification(MessageText, 0);
end;

procedure TMain.ShowAndroidNotification(MessageText: string; NotificationNumber: Integer);
var
 NotificationCenter: TNotificationCenter;
 Notification: TNotification;
begin
 NotificationCenter := TNotificationCenter.Create(nil);
 try
   Notification := NotificationCenter.CreateNotification;
   try
     Notification.Name := MessageText;
     Notification.AlertBody := MessageText;
     Notification.Title := MessageText;
     Notification.EnableSound := false;
     Notification.Number := NotificationNumber;
     NotificationCenter.ApplicationIconBadgeNumber := NotificationNumber;
     NotificationCenter.PresentNotification(Notification);
   finally
     Notification.DisposeOf;
   end;
 finally
   NotificationCenter.Free;
   NotificationCenter.DisposeOf;
 end;
end;

procedure TMain.Button1Click(Sender: TObject);
var
 PushService: TPushService;
 ServiceConnection: TPushServiceConnection;
 DeviceId, DeviceToken: string;
begin
 {$IFDEF ANDROID}
   PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
   PushService.AppProps[TPushService.TAppPropNames.GCMAppID] := app_id;
 {$ENDIF}
 ServiceConnection := TPushServiceConnection.Create(PushService);
 ServiceConnection.Active := True;
 ServiceConnection.OnChange := OnServiceConnectionChange;
 ServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;

 DeviceId := PushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceId];
 DeviceToken := PushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
 Memo1.Lines.Add('DeviceID: ' + DeviceId);
 Memo1.Lines.Add('FCM Token: ' + DeviceToken);
 Memo1.Lines.Add('Ready to receive!');
end;

end.

Program açınca siyah ekranda kalıyor malesef.
Cevapla
#2
Merhaba,
Linkini paylaşmış olduğunuz sitede AndroidPushManifest.xml dosyasında com.google.android.c2dm.permission.RECEIVE izninden bahsediyor. Bu izni tanımlasınız mı?
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
(29-01-2017, Saat: 17:15)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Linkini paylaşmış olduğunuz sitede AndroidPushManifest.xml   dosyasında com.google.android.c2dm.permission.RECEIVE izninden bahsediyor. Bu izni tanımlasınız mı?

Merhaba Fesih bey. O izni delphi kendisi eklediğinden ben eklemedim amma servis için olan ekledim.

<!-- Add this service under %receivers%. -->
<service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />

Uygulama açıldı buttona yazılan kodu çalıştırdım. Bağlantı kurdu. FCM consoldan Notification gönderdim ama malesef gelmedi.
Cevapla
#4
(29-01-2017, Saat: 17:45)AliZairov Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(29-01-2017, Saat: 17:15)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Linkini paylaşmış olduğunuz sitede AndroidPushManifest.xml   dosyasında com.google.android.c2dm.permission.RECEIVE izninden bahsediyor. Bu izni tanımlasınız mı?

Merhaba Fesih bey. O izni delphi kendisi eklediğinden ben eklemedim amma servis için olan ekledim.

<!-- Add this service under %receivers%. -->
<service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />

Uygulama açıldı buttona yazılan kodu çalıştırdım. Bağlantı kurdu. FCM consoldan Notification gönderdim ama malesef gelmedi.

Siyah ekranda kalma sorununu nasıl düzelttiniz?
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
#5
(29-01-2017, Saat: 17:47)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSiyah ekranda kalma sorununu nasıl düzelttiniz?

O benim hattammış. Target-Android-Libraries kısmında fmx.dex.jar başka tümünü kapatmışım. Onları her zaman kapatırım boyut konusunda azalma olması için. Gerekli olanları aktif edince form siyah ekran sorunu çözüldü.
Cevapla
#6
Firebase kullanım örneği:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
There's no place like 127.0.0.1
WWW
Cevapla
#7
(29-01-2017, Saat: 16:31)AliZairov Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba. Googlei Google Cloud Messaging (GCM) yeni versiyon adıyla Firebase Cloud Messaging (FCM) androidde kullanmak istiyorum. Bazı dökümanlar buldum işe yaramadı. Aslında hata veriyor diyemiyorum. Çünkü uygulama açılıyor siyah ekranda kalıyor. Bu durum PaaS (Parse) servisini kullanıncada oluşuyor. O yüzden işin içinden çıkamıyorum.

Forma bir tane memo ve button bileşeni ekledim. Options-Entitlement List den Receive push notifications true yaptım.

Örnek kodum bu. Kaynak olarak bu Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

(30-01-2017, Saat: 08:42)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlFirebase kullanım örneği:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

AliZairov Bey paylaşmış olduğunuz linki Konu içerisinde vermiş. Aslında o linkteki makaleden yola çıkarak bir örnek yapmış. Hata olmamasına rağmen Bildirim gelmiyormuş.
Aynı makaleden yola çıkarak bu sabah bende test edeyim dedim. 
Benzer bir durum oluştu. FireBase Console'dan mesaj iletildi uyarısına rağmen, Client uygulamya Bildirim düşmüyor.
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
#8
Başta AliZairov olmak üzere, kusura bakmayın arkadaşlar.
Şuanda firebase ile ilgili bir çalışmam olmadığı halde, bugün başka bir sitede bu linki görünce AliZairov'un sorduğu bu soru aklıma geldi. Ben de içeriğe bakmaksızın paylaştım. Affola Wink
There's no place like 127.0.0.1
WWW
Cevapla
#9
Merhaba.

(30-01-2017, Saat: 09:05)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAliZairov Bey paylaşmış olduğunuz linki Konu içerisinde vermiş. Aslında o linkteki makaleden yola çıkarak bir örnek yapmış. Hata olmamasına rağmen Bildirim gelmiyormuş.
Aynı makaleden yola çıkarak bu sabah bende test edeyim dedim. 
Benzer bir durum oluştu. FireBase Console'dan mesaj iletildi uyarısına rağmen, Client uygulamya Bildirim düşmüyor.

Sorun vermediğinden bende çözüm bulamadım. Adamın github sayfasında kı örneklerini indirip deneyeceğim. Belki bir ek kod yazmışdır.

(30-01-2017, Saat: 09:40)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBaşta AliZairov olmak üzere, kusura bakmayın arkadaşlar.
Şuanda firebase ile ilgili bir çalışmam olmadığı halde, bugün başka bir sitede bu linki görünce AliZairov'un sorduğu bu soru aklıma geldi. Ben de içeriğe bakmaksızın paylaştım. Affola Wink

Sorun değil olur bazen.
Cevapla
#10
Merhabalar,
Sorunu çözebildiniz mi acaba?
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Android Uygulamalarda Tasarım Paranoyaq 1 36 Dün, Saat: 19:35
Son Yorum: mcuyan
  Blocking dialogs not implemented on this platform on Android Platform Paranoyaq 4 210 17-01-2018, Saat: 13:52
Son Yorum: Paranoyaq
  Delphi Android Sayı Karmaşası [Çözüldü] codder71 2 111 12-01-2018, Saat: 15:54
Son Yorum: codder71
  Android Uygulama Arka Planda Kilitleniyor beklentili 10 226 08-01-2018, Saat: 15:06
Son Yorum: beklentili
  Delphi Android Java kullanmak AliZairov 10 871 21-12-2017, Saat: 18:09
Son Yorum: Abdullah ILGAZ



Konuyu Okuyanlar: 1 Ziyaretçi