Obecnie używam parse do wysyłania i odbierania powiadomień push w aplikacji na Androida.
Wszystko było w porządku, dopóki nie dodano przyrostek id aplikacji do mojego build.gradle debug dla danego typu produkcji:Parse Androida, powiadomienia i typy budowania
defaultConfig {
applicationId "com.example.myapp"
...
}
buildTypes {
debug {
applicationIdSuffix ".debug"
...
}
release {
...
}
}
Teraz widzę w Parse że nowe instalacje są zarejestrowane w dziedzinie applicationId: com.example.myapp.debug
, więc w W pliku manifestu użyłem następującego fragmentu kodu:
<receiver
android:name="com.parse.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
W ten sposób rejestracja byłaby dynamiczna zgodnie z rodzajem budowy.
W rzeczywistości to nie działa: instalacje zarejestrowane z sufiksem .debug
nie mają GCMSenderId
ani DeviceToken
, więc nie mogę otrzymywać żadnych powiadomień. Najwyraźniej brakuje mi jakiegoś punktu lub nie rozumiem, jak działa rejestracja, ale nie wiem, jak to zmienić.
Czy analizator używa identyfikatora aplikacji do zarejestrowania aplikacji lub rzeczywistej nazwy pakietu (używanej dla R)?
Czy ktoś zdołał obsłużyć przetwarzanie powiadomień z różnymi buildTypes (sufiksem applicationId)?
Jeśli to sprawia, że czujesz się lepiej, wpadłem na to samo, a twój "bezużyteczny temat" uratował mnie przed sobą (i więcej bólu). :) Dzięki –