2017-04-17 5 views
1

Ich entwickle eine Chat-Anwendung und verwende Firebase Cloud Messaging. Benachrichtigung funktioniert ordnungsgemäß. Wenn das Telefon gesperrt ist, wird die Benachrichtigung ordnungsgemäß empfangen, der Ton wird jedoch nicht generiert.Benachrichtigungston wird nicht erstellt, wenn das Telefon gesperrt ist

Jede Hilfe wird geschätzt.

FCMMessagingservice.java

package com.synergywebdesigners.nima; 

import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.Context; 
import android.content.Intent; 
import android.graphics.Color; 
import android.media.RingtoneManager; 
import android.net.Uri; 
import android.os.PowerManager; 
import android.support.v4.app.NotificationCompat; 
import android.view.View; 
import android.view.WindowManager; 
import com.google.firebase.messaging.FirebaseMessagingService; 
import com.google.firebase.messaging.RemoteMessage; 

import static android.app.Notification.VISIBILITY_PUBLIC; 
import static com.android.volley.VolleyLog.TAG; 


/** 
* Created by Ashish Shahi on 13-04-2017. 
*/ 

public class FcmMessagingService extends FirebaseMessagingService { 

    long[] pattern = {500,500,500,500,500,500,500,500,500}; 
    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 

     PowerManager pm = (PowerManager)getSystemService(
       Context.POWER_SERVICE); 
     PowerManager.WakeLock wl = pm.newWakeLock(
       PowerManager.SCREEN_DIM_WAKE_LOCK 
         | PowerManager.ON_AFTER_RELEASE, 
       TAG); 


     String title = remoteMessage.getNotification().getTitle(); 
     String message = remoteMessage.getNotification().getBody(); 
     Intent intent = new Intent(this, Memberlist.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 
       PendingIntent.FLAG_ONE_SHOT); 
     Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.mipmap.ic_action_title) 
       .setContentTitle(title) 
       .setContentText(message) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent) 
       .setDefaults(0) 
       .setLights(Color.RED, 500, 500) 
       .setPriority(Notification.PRIORITY_HIGH) 
       .setOngoing(true) 
       ; 
     wl.acquire(); 
     // ... do work... 
     wl.release(); 
     /*notificationBuilder.setLights(Color.BLUE, 500, 500); 
     long[] pattern = {500,500,500,500,500,500,500,500,500}; 
     notificationBuilder.setVibrate(pattern);*/ 
     notificationBuilder.setStyle(new NotificationCompat.InboxStyle()); 
     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManager.notify(0, notificationBuilder.build()); 

    } 
} 
+1

Wenn ich Ihre Frage richtig verstehe, erhalten Sie keine Benachrichtigung Ton, wenn das Telefon gesperrt ist. Nun, FCM bietet zwei Möglichkeiten, Benachrichtigungen auf Geräten zu pushen. Einer funktioniert, wenn sich Ihre App im Vordergrund befindet und der andere im Hintergrund, und Sie müssen möglicherweise beide Fälle behandeln. Bitte überprüfen Sie diese [link] (https://firebase.google.com/docs/cloud-messaging/concept-options) – am110787

+0

Bitte sagen Sie mir, wie kann ich dieses Problem beheben –

+0

Bearbeiten Sie Ihre Post mit den neuesten Codes und auch die Post Fehlerprotokolle, damit ich sehen konnte, was passiert. –

Antwort

0

Zum FCM-Konsole und Ton aktivieren und definieren Taste 'Sound' ==> 'default'; und gehen Sie zu PHP-Cansole und und geben Sie folgenden Code 'sound'==>'default'; das ist richtig funktioniert

+0

Danke für diese Idee Aber nur ein Problem, wenn ich api Ebene 16 Telefon context.message nicht verwenden bitte helfen Sie mir im Voraus. –

Verwandte Themen