2016-03-19 20 views
2

Push Bildirimi göndermek için Xamarin.Android Uygulamasına PushSharp kitaplığı kullanıyorum. Uygulamayı başlatırken her defasında GCM kaydını kontrol ediyorum ve kayıt süresi dolduğunda, cihaz jetonunu sunucuya gönderiyorum. BazenAygıt Aboneliği Süresi doldu - Düzeltme

Cihaz Abonelik Süresi Dolan istisna günlüğüne

alıyorum. Bu istisna nedeniyle cihazım bildirim almıyor ve bazen otomatik olarak çözümleniyor ve bildirim almaya başladım. Ne olduğundan emin değilim. Bu sorunu nasıl giderebilirim?

gcmBroker.OnNotificationFailed += (notification, aggregateEx) => 
{ 
    if (ex is DeviceSubscriptonExpiredException) 
    { 
    var subExc = ex as DeviceSubscriptonExpiredException; 
    } 
} 

DB'den süresi dolan belirteci silmek olabilir, ama benim karışıklık aslında aygıt jetonun süresi dolmadı geçerli:

ben aşağıdaki gibi DeviceSubscriptionExcpetion ele verebilir. Cihaz geçerli, ancak bazen bu istisna nedeniyle bildirim alamıyor.

this ileti dizisine göre, yalnızca aynı aygıt için birden çok kaydı olduğunda gerçekleşir. Ancak, benzersiz cihaz kimliğine karşı cihaz jetonu saklıyorum. Ben aşağıda cihaz kimliği alıyorum:

try 
      { 
       var telephonyManager = (TelephonyManager)Forms.Context.GetSystemService(Android.Content.Context.TelephonyService); 
       if (telephonyManager != null) 
       { 
        deviceId = telephonyManager.DeviceId; 

        if (string.IsNullOrEmpty(deviceId)) 
        { 
         deviceId = Android.OS.Build.Serial; 
        } 
       } 
      } 

onun cihaz kimliği eşsizdir, ancak onun çoğu zaman değişen söyledi bile. Bu istisnayı düzeltmeyi tahmin etmenin başka bir yolu da Android cihazında her zaman benzersiz olan bir kimlik elde etmektir.

Lütfen bu sorunu gidermek için bazı öneride bulunun.

cevap

0

Kontrol NewSubscriptionId mülkiyet DeviceSubscriptonExpiredException istisna boş olup olmadığını o zaman Telefonunuzda yeni registrationId istemek ("com.google.android.c2dm.intent.REGISTER" ile bir niyeti başlatmak) gerekir.

Bazı nadir durumlarda uygulamayı yeniden yüklemeyi deneyin.

İlgili konular