Возможно получать извещения Firebase в Android с закрытым app?

Код уже это у меня есть функционируя, но только меня принимает извещение, если 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. Кто-то знает объяснение?

Большое спасибо.

3
задан 12.06.2016, 13:08
3 ответа

Решенные ! В конце концов были из-за разрешений Xiaomi..., как кажется, если я не требую разрешения трожения в начало системы не permitГ, - чтобы показывать извещения с закрытым app.

Я Рекомендую этот трэд всем тем, кто хотели бы осуществить FCM, так как он очень полный.

И благодаря всем, так как не было возможно без вас.

Спасибо!

0
ответ дан 24.11.2019, 14:11
  • 1
    Это не отвечает на вопрос Виктор, ты не определяешь, что разрешение, загрузив систему. Потому что ты не добавляешь эту informació n. – Jorgesys♦ 13.12.2017, 01:29

Измени это на файл.PHP и умно!!!

$mensaje = array("body"=>"tu mensaje", "title"=>"Titulo");
$fields = array(
'to' => "sPODNKLSsdfsd:ASFALSDKFJLA....",
'notification' => $mensaje),
);

Нуждался в помощи tambiГ©n Уже ты можешь получать ее notificaciГіn с app на первом плане? я отношусь, когда ты получаешь одну notificaciГіn, ты можешь показывать ее с Toast или чем-то в Activity...

1
ответ дан 24.11.2019, 14:11
  • 1
    Если ты можешь перемещать ее activity, если, он соединяет информацию как string внутри toast. – Max Sandoval 11.06.2016, 07:23
  • 2
    То, что я хочу, что, когда будет принят notificaci и # 243; n или сообщение появилось autom и # 225; ticamente, тип WatsApp, когда он получает сообщение, появился autom и # 225; ticamente, podr и # 225; с Firebase? – Y. Vasquez 11.06.2016, 07:38
  • 3
    Ты это не объединил? Как ты смог решать мое сомнение? В и # 250; n я это не протестировал уже комментировать и # 233; результаты. – Victor Maldonado 12.06.2016, 13:06
  • 4
    @Y.Vasquez ты нуждаешься в том, чтобы создать услугу внутри твоего aplicaci и # 243; n Android, так что этот ejecut и # 225; ndose на втором плане без необходимости, которой этот пользователь в контакте с интерфейсом, так у тебя будет мочь быть связь. hermosaprogramacion.com/2015/07/… – Max Sandoval 12.06.2016, 20:18
  • 5
    @VictorMaldonado уже это у меня есть, функционируя, получив notificaci и # 243; n, уже будьте на втором плане, или что app уже est и # 233; закрывшая, уже это у меня есть функционируя с консоли и с моего сервера (я храню в архиве .php), Но в твоем классе FirebaseMessagingServ прикрепи то, у чего есть это соединение: github.com/firebase/quickstart-android/blob/master/messaging/… – Y. Vasquez 12.06.2016, 20:55

Восток 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;
}
0
ответ дан 24.11.2019, 14:11
  • 1
    ВПЕЧАТЛЯЮЩИЙ: Я понял, что так со мной c и # 243; я говорю, как с твоим, в моем терминале Xiaomi ко мне не прибывают извещения, если app закрылся (whatsapp, intagram, и т.д., если они прибывают) и в Nexus, если прибывают извещения. Кто-то podr и # 237, то есть мотив? Я открываю другой post? – Victor Maldonado 14.06.2016, 01:22
  • 2
    Amm не, который и # 237; в raz и # 243; n, я уже это протестировал в galaxy S5 и в S4, оно я функционирует в двух, и даже, если у меня нет телефона, присоединенного к Интернету env и # 237; an и он сообщается, когда я присоединяюсь..., я загрузил родной пример Google в GitHub и скопировал классы в мой проект и я заношу в список!!! – Y. Vasquez 14.06.2016, 02:11