я хочу показывать уведомления MY GCM пользователям, когда мое приложение закрыто или очищено из кеш-памяти, ниже мой код работает только тогда, когда приложение открыто, но не работает в фоновом режиме:
public function send_notification($registatoin_ids, $message) {
include_once 'dbconfig.php';
// Set POST variables
$url = 'https://android.googleapis.com/gcm/send';
$fields = array(
'registration_ids' => $registatoin_ids,
'data' => $message,
);
Смартфон не видит никаких услуг в моем приложении. Вот скриншот, где вы можете сравнить мое приложение с другими, такими как WhatsApp:
Ниже моя часть Манифеста о GCM:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="my.app.path" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- ... other permissions -->
<permission
android:name="my.app.path.permission.C2D_MESSAGE"android:protectionLevel="signature" />
<uses-permission android:name="my.app.path.permission.C2D_MESSAGE" />
<application
...>
<!-- ... activites... -->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"android:exported="true"android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="my.app.path" />
</intent-filter>
</receiver>
<service
android:name=".MyGcmListener"android:exported="false"android:enabled="true" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
</application>
</manifest>
Я хочу показать уведомления, как WhatsApp.
Вы пробовали, если это помогает установить приоритет high
при отправке сообщений?
Установлен в High priority
разрешить службе GCM разбудить спящее устройство, когда это возможно, и открыть сетевое подключение к серверу приложений. Например, приложениям с мгновенными сообщениями, чатами или голосовыми вызовами обычно требуется открыть сетевое соединение и убедиться, что GCM доставляет сообщение на устройство без задержки. Установите высокий приоритет только в том случае, если сообщение является критичным по времени и требует немедленного взаимодействия с пользователем, и имейте в виду, что установка для ваших сообщений высокого приоритета в большей степени способствует разрядке батареи по сравнению с сообщениями с обычным приоритетом.
Других решений пока нет …