2014-04-05 14 views
5

Dostaję usługę SERVICE NOT AVAILABLE podczas rejestracji GCM.Rejestracja GCM: SERWIS NIEDOSTĘPNY w sieci komórkowej

Dziwne zachowanie polega na tym, że kod działa poprawnie, gdy urządzenie jest podłączone do sieci Wi-Fi. Fails prawie zawsze (90% razy), gdy jest w sieci komórkowej.

Internet na komórkowej transmisji danych działa dobrze, a inne operacje serwera działają, choć są nieco wolniejsze w porównaniu do Wi-Fi.

Próbowałem dodać prostą pętlę (nie wykładniczą), aby kontynuować próbę po okresie snu, ale bez powodzenia.

Moment Przełączam Wifi na operację (rejestracja GCM) kończy się sukcesem.

Proszę o pomoc.

**** Aktualizuj Więcej informacji ** **: Przetestowałem GCM Demo na moim urządzeniu i ma on ten sam problem. Brak danych mobilnych, działa dobrze na Wi-Fi. Urządzenie, którego awarią jest Uwaga 3, docelową wersją jest 4.4.2. dziwo sam kod działa poprawnie na innym urządzeniu (wersja 2.3.6)

GCM Rejestracji

try { 
       String sDeviceID=null; 
       if (checkPlayServices()) { 
        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context); 
        sDeviceID = getRegistrationId(context); 
        if (sDeviceID==null) { 
         for(int i=0;i<60;i++){ 
          try{ 
           sDeviceID= gcm.register(SENDER_ID); 
           break; 
          }catch(IOException e){ 
           Thread.sleep(2000); 
           continue; 
          } 
         } 
         // Persist the regID - no need to register again. 
         storeRegistrationId(context, sDeviceID); 
        } 
        sDeviceID = getRegistrationId(context); 
        if (sDeviceID==null) { 
         error=true; 
         throw new Exception("GCM Error"); 
        } 

Manifest XML

  <!-- Receives the actual messages. --> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      <!-- Receives the registration id. --> 
      <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 

      <category android:name="com.planetapp.schoolink" /> 
     </intent-filter> 
    </receiver> 

    <service android:name="com.planetapp.schoolink.GCMIntentService" /> 

Broadcast Receiver

public class GCMBroadcastReceiver extends WakefulBroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    System.out.println("++++++++++++ON RECEIVE"); 
     String regId = intent.getExtras().getString("registration_id"); 

     if(regId != null && !regId.equals("")) { 
      /* Do what ever you want with the regId eg. send it to your server */ 
      System.out.println("++++++++++++ID RECEIVED++++++++++++"+regId); 

     } 
    } 

}

+0

korzystanie ten link http: //przepełnienie stosu.com/questions/17188982/how-to-fix-google-cloud-messaging-registration-error-service-not-available – Yogendra

+1

Problem został rozwiązany. W moim telefonie komórkowym w "Usługach Google" ustawiono opcję "Ogranicz dane w tle". Z tego powodu "Usługi Google Framework" lub "Usługi Google Play" nie były dostępne po wyłączeniu sieci Wi-Fi. Kiedy usunąłem ograniczenie, zacząłem działać dobrze! – Mahesh

+1

@Mahesh Mam Ograniczam dane w tle niezaznaczone, ale wciąż napotykam ten sam problem, co zgłoszony. Jeśli mam rację, mam na myśli ustawienia> Użycie danych> menu opcji> Ogranicz dane w tle. – Gem

Odpowiedz

-1

Jeśli używasz android amulator, obsługa przyzwyczajenie być dostępny

4

OP rozwiązać swój problem i napisali rozwiązanie w komentarzu. Rozwiązanie:

Issue resolved. On my mobile, "Google Services" had setting "Restrict background data" checked. This was the reason why "Google Services Framework" or "Google Play Services" was not available when Wifi was turned off. Once I removed the restriction, I started working fine !

Przejdź do Ustawienia

Look do użycia Danych

enter image description here

Look dla "Google Play"

enter image description here

Po wejściu do innego ekranu:

  1. Menu
  2. Ograniczanie BackgroundData (Sprawdź, czy jest zaznaczone i odznacz je.)

enter image description here

+0

jak sprawdzić to ustawienie w nexusie 5 – Megha

+0

gdzie jest panel "Usługi Google"? –

+0

thanx dużo ..... mam ten sam problem i cierpię od dwóch dni ... thanx man –

Powiązane problemy