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.
WWW
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.
WWW
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ü.
WWW
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.
WWW
Cevapla
#10
Merhabalar,
Sorunu çözebildiniz mi acaba?
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Ödüllü Soru] FMX Android projede ekranın sürekli açık bırakılması Abdullah ILGAZ 1 48 Dün, Saat: 12:14
Son Yorum: Cyber
  Android APİ sorunu - Google Play BY-HAYALET 18 578 09-07-2018, Saat: 09:47
Son Yorum: quiet1day
  Android Cihaz İçin Form Tasarlama hi_selamlar 4 130 27-06-2018, Saat: 12:28
Son Yorum: hi_selamlar
  Android Ayar Degistirme gonulali 0 78 12-06-2018, Saat: 11:25
Son Yorum: gonulali
  Android için comport iletişimi beklentili 4 220 14-05-2018, Saat: 21:59
Son Yorum: engerex



Konuyu Okuyanlar: 1 Ziyaretçi