0

Я занимаюсь разработкой приложения Ionic 2 и тестированием на Android-эмуляторе.Не получать уведомления GCM с приложением в фоновом режиме и content-available = 1

Когда приложение находится в фоновом режиме и уведомление не имеет заголовка, никакое сообщение и контент-доступный = 1 уведомление не должно отправляться непосредственно обработчику уведомлений приложения. Но этого не происходит.

Я могу получать уведомления с приложением на переднем плане.

Если у меня есть заголовок и сообщение, я получаю уведомление в области уведомлений. Но мне нужно отправить уведомление непосредственно в приложение в бесшумном режиме, без пропуска через область уведомлений.

Вот мой код для отправки уведомления толчка:

{ 
    "delay_while_idle": true, 
    "priority": "high", 
    "sound": "default", 
    "color": "FFFF00", 
    //payload 
    "data": { 
     "content-available": "1", 
     "some_var": "some_value", 
     "ohter_var": "other_value",  
    } 
} 

Как я мог посланные молчащие уведомления на мой Android приложения?

ответ

1

Android GCM и FCM оба также работайте когда приложение фон.

Для этого вам необходимо добавить ниже классы обслуживания в манифест с намерением Filter.

<!-- [START gcm_listener] --> 
     <service 
      android:name=".gcm.GcmListener" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      </intent-filter> 
     </service> 
     <service 
      android:name=".gcm.TokenRefreshService" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.gms.iid.InstanceID" /> 
      </intent-filter> 
     </service> 
     <service 
      android:name=".gcm.RegistrationIntentService" 
      android:exported="false" /> 
     <!-- [END gcm_listener] --> 


public class GcmListener extends GcmListenerService { 
} 


public class TokenRefreshService extends InstanceIDListenerService { 
    @Override 
    public void onTokenRefresh() { 
     super.onTokenRefresh(); 
     Intent intent = new Intent(this, RegistrationIntentService.class); 
     startService(intent); 
    } 
} 

Чтобы получить маркер:

public class RegistrationIntentService extends IntentService { 
    // TODO: Rename actions, choose action names that describe tasks that this 
    private String TAG = "RegistrationIntentService"; 

    public RegistrationIntentService() { 
     super("RegistrationIntentService"); 
    } 


    @Override 
    protected void onHandleIntent(Intent intent) { 
    InstanceID instanceID = InstanceID.getInstance(this); 
     String token = instanceID.getToken("PRODUCT_ID", 
       GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 
} 
} 
+0

Спасибо за ответ, но, как я сказал, что это Ионные 2 приложения. Я не разбираюсь с Java-кодом или Android-XML напрямую. Кроме того, я не думаю, что это проблема с конфигурацией переднего конца, но проблема с конфигурацией сообщений GCM. – Natanael

 Смежные вопросы

  • Нет связанных вопросов^_^