Soru & Cevap

Device token Nasıl Alınır? ...

11.11.2013 - 06:11

HERKESE SELAMLAR ;

geliştirmekte olduğum uygulamada push notification kullanacağım ancak bana bir token ıd lazım her cihaza özel olarak alınacak bunu nasıl yapabilirim??

731 Görüntülenme

7 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-7730-1383655584.png
egemen.durmus
13.11.2013 - 08:23
Aynen registration id imiş cihaza özel alıyor çok teşekkürler :))
Profile picture for user yasinkafadar
yasinkafadar
12.11.2013 - 10:13

İşin zor tarafını halletmişsin kolay tarafı kalmış :)

Yukarıdaki adımları yaptıysan aşağıdakine benzer bir kodda yazmış olman gerekiyor. Buradaki registrationId zaten seninde kendi serverından push atarken ki kullandığın id. Bu da her telefona özel Google tarafından üretilen unique yani benzeri olmayan bir token. 

Şimdi senin senaryonda yapman gereken bir tane daha webservis yazıp hangi token ile menunün ilişkisinin olacağını client uygulamandan alman. 

Kolay gelsin.


private String getRegistrationId(Context context) {
    final SharedPreferences prefs = getGCMPreferences(context);
    String registrationId = prefs.getString(PROPERTY_REG_ID, "");
    if (registrationId.isEmpty()) {
        Log.i(TAG, "Registration not found.");
        return "";
    }

    int registeredVersion = prefs.getInt(PROPERTY_APP_VERSION, Integer.MIN_VALUE);
    int currentVersion = getAppVersion(context);
    if (registeredVersion != currentVersion) {
        Log.i(TAG, "App version changed.");
        return "";
    }
    return registrationId;
}

private SharedPreferences getGCMPreferences(Context context) {
    return getSharedPreferences(DemoActivity.class.getSimpleName(),
            Context.MODE_PRIVATE);
}

picture-7730-1383655584.png
egemen.durmus
12.11.2013 - 09:50

Günaydın ;

 

cevap için çok teşekkürler Yasin ;

ofise yeni geldiğimden yeni gördüm cevapları dün  aynen bunu yaptım ama burdakin de bu uygulamaya kayıt olan herkese gidiyor tamam bunuda yaptım ama yapmak istediğim örnekle anlatayım diyelim 2 menü var 2 de kullanıcı 1.menüyü 1. kullanıcı takip ediyor 2. menüyüde 2. kullanıcı ; ben bunlara bildirim gönderdiğim vakit 2 sinede gitmeyecek 1. menünki, 1.kullanıcıya 2. menünki 2.kullanıcıya yani genel gitmeyecek ios da bir key verilior her kullanıcıya özel yani bildiğimiz token id bende o verilen token id yi almak istiyorum yani 1.kullanıcının ayrı token ı olucak 2.ninki ayrı  ;

 

bu arada senin cevabın içinde teşekkür ederim Halil ... 

Profile picture for user yasinkafadar
yasinkafadar
11.11.2013 - 11:12

Selam Egemen,

http://developer.android.com/google/gcm/gs.html bu linkte adım adım ne yapılması gerektiği anlatılıyor. Ama ben sana kısaca durumu özetleyeyim.

1. Önce google cloud console'dan bir proje oluşturup orada GCM servisini açman gerekiyor. Buradaki bilgiler sana daha sonra lazım olacak.
https://cloud.google.com/console

2. Olarak bence bir server implementasyonu yapman gerekiyor. Oda aşağıdaki linkte detaylı bir şekilde anlatılıyor.
- Burada 2 seçenek var.
Attığın push için kullanıcıdan okundu bilgisi gibi bir şey alman gerekiyorsa XMPP, yok eğer sadece kullanıcıya uyarı göndermek istiyorsan HTTP connection olan bir server implementasyonu yapman gerekiyor. http://developer.android.com/google/gcm/server.html

Not: Bu işi yapan birçok 3rd party server var. Belli bir sayıda pusha kadar ücretsiz kullanımı var. Ayrıca yakın bir zamanda da Turkcell'in içerde kullandığı Push Server dışarıdaki insanların kullanımına açılması planlanıyor. Bundan da faydalanabilirsin.

3. Son olarak bir client implementasyonu yapman gerekiyor. Bu adımda da yapman gerekenler adım adım aşağıdaki linkte anlatılıyor. Burada google play servis library'sini kullanman gerekiyor. Bunun da API Level 9 olduğu için uygulaman bu versiyon altındaki cihazlarda çalışmayacaktır. 

Not: Aynı server gibi bütün client implementasyonlarını yapan Turkcell tarafından yine bir SDK yayınlanması planlanıyor. Ama zaman konusunda benimde bir bilgim yok.

http://developer.android.com/google/gcm/client.html

 

Android'da Push işlemleri uygulamaya iletildikten sonra istediğiniz aksiyonu alabilirsiniz. iOS'daki gibi belli kalıplara bağlı değilsiniz.

Yukarıdaki adımlarda takıldığınız bir nokta olursa yardım etmeye çalışırım. 

Kolay gelsin.

 



 



 

 

picture-399-1379511904.jpg
halil
11.11.2013 - 08:42

konunu ayrıntılı özü için buradan faydalanmakta yarar var tabi. 

picture-399-1379511904.jpg
halil
11.11.2013 - 08:38

[code]protected void onRegistered(Context arg0, String arg1) {

Logger.d(arg0, "REG ID="+arg1);

regID = arg1;

}[/code]

picture-7730-1383655584.png
egemen.durmus
11.11.2013 - 07:01
Bu arada söylemeyi unuttum google servislerini kullanarak örnek olarak ios apns diye bir şey kullanıp alıyor ben bunu gcm kullanarak veya google servislerini nasıl alabilirim