2016-06-23 11 views
0

私はプッシュ通知のためにFirebase Cloud Messagingに移行しました。すべてのことがうまくいく、私はアプリが開いている、またはバックグラウンドで実行されているときに私は通知を得るが、アプリケーションが閉じられ、メッセージがサーバーから送信されると、デバイスには(明らかに)受け取られません。今、私がアプリケーションを再び開くと、保留中の通知(アプリケーションが閉じられている間に通知が送信されます)を取得する必要がありますが、私は通知を受け取りません。FCM - アプリがリニューアルされたときに通知を受信しない

は、これはこれは私のFirebaseInstanceクラス

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { 
public static String TAG="Firebase"; 
@Override 
public void onTokenRefresh() { 

    String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 
    Log.d(TAG, "Refreshed token: " + refreshedToken); 

} 
} 

のAndroidManifest.xmlである私のFireBaseMessagingServiceクラス

public class MyFirebaseMessagingService extends FirebaseMessagingService { 
public static String TAG="Firebase"; 
@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    Log.d(TAG, "From: " + remoteMessage.getFrom()); 
    Log.d(TAG, "Notification Message Body: " + remoteMessage.getData().get("message")); 
    notification(remoteMessage.getData().get("message")); 
} 
void notification(String s) 
{ 
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); 
    mBuilder.setSmallIcon(R.mipmap.logo); 
    mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI); 
    mBuilder.setContentTitle("App"); 
    mBuilder.setContentText(s); 
    mBuilder.setAutoCancel(true); 
    Intent resultIntent = new Intent(this, MainActivity.class); 
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
    stackBuilder.addParentStack(MainActivity.class); 
    stackBuilder.addNextIntent(resultIntent); 
    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
    mBuilder.setContentIntent(resultPendingIntent);; 
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    mNotificationManager.notify(101,mBuilder.build()); 
} 
} 

ある - 保留中の通知を取得するために

<service 
     android:name=".Helpers.MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
     </intent-filter> 
    </service> 
    <service 
     android:name=".Helpers.MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
     </intent-filter> 
    </service> 
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
<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.SYSTEM_ALERT_WINDOW"/> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 

ことが可能とされたときにアプリリニューアルされましたか?

+0

は私が見てみましょう、あなたはマニフェスト –

+0

@SalvatoryBayaに追加の権限は私の更新の答え –

+0

表情を追加私はpermission..butはまだ通知を得ることはありません追加 –

答えて

3

あなたはサービスを使用しているのでこれが可能だと思いますが、あなたが何らかの権限を追加するまでアンドロイドはそれを受け取らせません。どのような許可がこの条件を可能にするかを調べて、私たちに更新してください。

次の権限を追加すると、うまくいくはずです。
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="android.permission.WAKE_LOCK" />

関連する問題