2016-05-27 13 views
6

FireBaseクラウドメッセージングを使用しようとしています。私はトークンを受け取っていますが、コンソールから通知を受けていません。ここ は私のマニフェストです:FireBaseクラウドメッセージングが機能しない

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="careerage.jobseeker.app" 
android:hardwareAccelerated="true" 
android:versionCode="1" 
android:versionName="0.0.1"> 

<uses-sdk 
    android:minSdkVersion="16" 
    android:targetSdkVersion="23" /> 

<supports-screens 
    android:anyDensity="true" 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:resizeable="true" 
    android:smallScreens="true" 
    android:xlargeScreens="true" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<android:uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

<application 
    android:hardwareAccelerated="true" 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:supportsRtl="true"> 
    <activity 
     android:name=".MainActivity" 
     android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" 
     android:label="@string/activity_name" 
     android:launchMode="singleTop" 
     android:theme="@android:style/Theme.DeviceDefault.NoActionBar" 
     android:windowSoftInputMode="adjustResize"> 
     <intent-filter android:label="@string/launcher_name"> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <service 
     android:name=".TokenService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
     </intent-filter> 
    </service> 
    <service 
     android:name=".NotificationService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
     </intent-filter> 
    </service> 
</application> 

そして、私のコードは、ほとんどのサンプルと同じである:

public class NotificationService extends FirebaseMessagingService { 

private void sendNotification(String messagebody) { 
    Intent intent = new Intent(this, MainActivity.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.drawable.icon) 
      .setContentTitle("Notified") 
      .setContentText(messagebody) 
      .setAutoCancel(true) 
      .setSound(defaultSoundUri) 
      .setContentIntent(pendingIntent); 

    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    notificationManager.notify(0 , notificationBuilder.build()); 
} 

private void sendSnackbar(String messagebody) 
{ 
    Toast.makeText(this,"Notified",Toast.LENGTH_LONG).show(); 
} 

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    Toast.makeText(this,"Message Received",Toast.LENGTH_LONG).show(); 

     Log.d("Notification Received",remoteMessage.getNotification().getBody()); 

     sendNotification(remoteMessage.getNotification().getBody()); 
    sendSnackbar(remoteMessage.getNotification().getBody()); 
} 

} 

私はここにFirebase cloud messaging notification not received by device 質問をチェックし、まだそれが動作していません。

+0

ペイロードをコンソールから送信していますか? –

+0

@McAwesomvilleイエップとそのサンプルを扱う –

+0

申し訳ありません。私は以前見たことがなかった、あなたはすでにそれを言及した。とにかく、通知を送った後に 'onMessageReceived()'のログが表示されませんでしたか?アプリはフォアグラウンドでもバックグラウンドでもあったのですか? –

答えて

1

service api callを使用してメッセージを送信してみます。それはあなたに応答コードと応答JSsonを提供し、FCMを動作させない理由を得るのに役立ちます。あなたは以下のように全体のパッケージ名を指定して、サービスを変更する必要があります使用率がhere- Firebase onMessageReceived not called when app in background

-1

に答え

サービスコール、

<service 
    android:name="your.package.name.TokenService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
    </intent-filter> 
</service> 
<service 
    android:name="your.package.name.NotificationService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
    </intent-filter> 
</service> 

それが機能していない場合は私に知らせてください。

+1

それは間違っています。 Androidはどこを見るか知っています –

関連する問題