Код уже это у меня есть функционируя, но только меня принимает извещение, если app открыт или на втором плане, не, если она закрытая. Я ищу много, но не нахожу решение.
Nose, если он будет зависеть от чего-то из Manifest:
<service
android:name=".FirebaseMessagingServ">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name=".FirebaseInstanceIDServ">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
Файл FirebaseMessagingServ - управляющий в том, чтобы доставать извещение:
public class FirebaseMessagingServ extends com.google.firebase.messaging.FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage message){
String from = message.getFrom();
Map data = message.getData();
showNotification(message.getData().get("message"));
}
private void showNotification(String sms){
Intent i = new Intent(this, Main_Principal.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,i,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setAutoCancel(true)
.setContentTitle("FCM test")
.setContentText(sms)
.setSmallIcon(R.drawable.icon_app_grande)
.setContentIntent(pendingIntent);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.notify(0,builder.build());
}
}
Который функционирует верно каждый раз, когда app был открыт или на втором плане, не функционирует, когда она закрытая.
Класс одинокий FirebaseInstanceIDServ берется за то, чтобы извлекать Token и посылать это мне в Sql.
Моя проблема из-за комментариев находится в System tray, если он имел что-то общее, это мой php, ответственный за отправление:
<?php
//Conectamos BD
include("conn.php");
$con = conectar();
function send_notification ($tokens,$message, $notification){
$url = 'http://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message,
'notification' => $notification);
$headers = array(
'Authorization:key = AIzaSyB_317WEFmazhxxxxxxxxxma3o81qjA',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
$sql = "SELECT token From fcm_tokens";
$result = mysql_query($sql,$con);
$tokens = Array();
if(mysql_num_rows($result)>0){
while($row = mysql_fetch_assoc($result)){
$tokens[] = $row["token"];
}
}
mysql_close($con);
$message = array("message" => "Prueba de FCM");
$notification = array("message" => "Prueba de FCMd", "body" => "cuerpooo", "icon" => "ic_launcher");
$message_status = send_notification($tokens, $message,$notification);
echo $message_status;
?>
Когда app активная прибывает информация о 'Дате', и когда эта в background прибывает информация 'notification', но когда app закрылся (убитый процесс), не прибывает никакой тип извещения.
Он был бы должен делать какое-то изменение?
Известие о последнем часе: Доказательства они это делая в моем мобильном телефоне Xiaomi, только что протестировало это в Nexus 5 и там, если, что прибывают, хотя app закроется, конечно одинокий с консоли ты не дал PHP. Кто-то знает объяснение?
Большое спасибо.
Решенные ! В конце концов были из-за разрешений Xiaomi..., как кажется, если я не требую разрешения трожения в начало системы не permitГ, - чтобы показывать извещения с закрытым app.
Я Рекомендую этот трэд всем тем, кто хотели бы осуществить FCM, так как он очень полный.
И благодаря всем, так как не было возможно без вас.
Спасибо!
Измени это на файл.PHP и умно!!!
$mensaje = array("body"=>"tu mensaje", "title"=>"Titulo");
$fields = array(
'to' => "sPODNKLSsdfsd:ASFALSDKFJLA....",
'notification' => $mensaje),
);
Нуждался в помощи tambiГ©n Уже ты можешь получать ее notificaciГіn с app на первом плане? я отношусь, когда ты получаешь одну notificaciГіn, ты можешь показывать ее с Toast или чем-то в Activity...
Восток serГ - в нее funciГіn в PHP
function eniarNotificacion($mssg, $title) {
$message = array("body"=>$mssg, "title"=>"Titulo");
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'to' => "gPdofldkfgj:ADSDgslñkdgdsf...",
'notification' => $message,
);
$headers = array(
'Content-Type:application/json',
'Authorization:key=ASfasdflsdkjlaksLKAJDALSKdfassd...'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}