2016-05-27 53 views
6

Sto cercando di utilizzare FireBase Cloud Messaging. Ricevo un token ma non riceve notifiche dalla console. Ecco il mio manifesto:FireBase Cloud Messaging non funziona

<?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> 

E il mio codice è quasi lo stesso che dal campione:

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()); 
} 

} 

Ho controllato la domanda qui Firebase cloud messaging notification not received by device ma ancora non funziona.

+0

Stai inviando il carico utile tramite la console? –

+0

@McAwesomville Sì e il suo funzionamento con il loro campione –

+0

Siamo spiacenti. Non l'ho visto prima, l'hai già detto. Ad ogni modo, quindi i log del tuo 'onMessageReceived()' non sono stati visualizzati dopo aver inviato la notifica? L'app era in primo piano o sullo sfondo? –

risposta

-1

È necessario modificare il servizio con l'intero nome del pacchetto come qui di seguito,

<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> 

Per favore fatemi sapere se non funziona.

+1

Questo è sbagliato. Android sa dove guardare –

Problemi correlati