2016-05-27 28 views
6

Tôi đang cố sử dụng FireBase Cloud Messaging. Tôi nhận được mã thông báo nhưng không nhận được bất kỳ thông báo nào từ bảng điều khiển. Đây là Manifest của tôi:FireBase Nhắn tin qua đám mây không hoạt động

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

Và Mã của tôi là gần như giống nhau như từ mẫu:

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

} 

Tôi đã kiểm tra các Câu hỏi ở đây Firebase cloud messaging notification not received by device nhưng nó vẫn không làm việc.

+0

Bạn có gửi tải trọng qua bảng điều khiển không? –

+0

@McAwesomville Yep và làm việc với mẫu của chúng –

+0

Xin lỗi. Tôi không thấy trước đó, bạn đã đề cập đến điều đó. Dù sao, vì vậy các bản ghi trong 'onMessageReceived()' của bạn không hiển thị sau khi bạn gửi Thông báo? Ứng dụng ở nền trước hay nền sau? –

Trả lời

1

Thử gửi tin nhắn bằng cách sử dụng cuộc gọi api dịch vụ. Nó sẽ cung cấp cho bạn mã phản ứng và json phản hồi có thể giúp bạn có được lý do không hoạt động FCM.

sử dụng cuộc gọi Dịch vụ trả lời ở đây, Firebase onMessageReceived not called when app in background

-1

Bạn cần phải thay đổi dịch vụ với tên trọn gói như dưới đây,

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

Xin vui lòng cho tôi biết nếu nó không được làm việc.

+1

Điều đó sai. Android biết nơi để tìm –

Các vấn đề liên quan