3

Я использую GCM и Pubnub для отправки push-уведомлений с одного устройства на другое. Я выполняю код, указанный здесь -PubNub Push сообщения не работают

http://www.pubnub.com/blog/sending-receiving-android-push-notifications-with-gcm-google-cloud-messaging/

Я получаю данные, отправленные с другого устройства, а также возможность отображения. но Уведомление (в панели уведомлений) не работает.

После получения данных Textview изменяет отображение данных, но ничего не происходит в панели уведомлений.

Ниже код для моего радиовещательного приемника и GCM намерения службы (я предполагаю, что что-то может быть неправильно здесь) -

BroadcastReceiver

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
    ComponentName comp = new ComponentName(context.getPackageName(), 
      GcmIntentService.class.getName()); 

    startWakefulService(context, (intent.setComponent(comp))); 
    setResultCode(Activity.RESULT_OK); 
    Log.i("NIS", "Inside Brocast receiver"); 
    } 
} 

Сервис -

public class GcmIntentService extends IntentService { 

private static final int NOTIFICATION_ID = 12345; 

public GcmIntentService() { 
    super("GcmIntentService"); 
} 

@Override 
protected void onHandleIntent(Intent intent) 
{ 
    Bundle extras = intent.getExtras(); 
    GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this); 
    String messageType = gcm.getMessageType(intent); 

    if (!extras.isEmpty() && GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) 
    { 
     sendNotification("Received: " + extras.toString()); 
     Log.i("NIS", "Inside handle intent"); 
    } 
    GcmBroadcastReceiver.completeWakefulIntent(intent); 
} 

private void sendNotification(String msg) 
{ 
    NotificationManager mNotificationManager = (NotificationManager) 
      this.getSystemService(Context.NOTIFICATION_SERVICE); 

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
      new Intent(this, ChatsList.class), 0); 

    Log.i("NIS", "send notification notification biulder"); 

    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
        .setSmallIcon(R.drawable.kohls) 
        .setContentTitle("PubNub GCM Notification") 
        .setStyle(new NotificationCompat.BigTextStyle() 
          .bigText(msg)) 
        .setContentText(msg); 

    mBuilder.setContentIntent(contentIntent); 
    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 
} 
} 

В файле манифеста могут быть проблемы. Вот мой файл манифеста -

<?xml version="1.0" encoding="utf-8"?> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
<permission android:name="com.example.nishant.tkmabft.kconnect20.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 
<uses-permission android:name="com.example.nishant.tkmabft.kconnect20.permission.C2D_MESSAGE" /> 


<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".ChatsList" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".ChatActivity" 
     android:label="@string/title_activity_chat" > 
    </activity> 
</application> 

<receiver 
    android:name=".GcmBroadcastReceiver" 
    android:permission="com.google.android.c2dm.permission.SEND" > 
    <intent-filter> 
     <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     <category android:name="your.package.name" /> 
    </intent-filter> 
</receiver> 

<service android:name=".GcmIntentService" /> 
<meta-data android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 

Другой код внутри деятельности (указанной в ссылке, указанной) как GCM регистр/незарегистрированный т.д. работает отлично. Пожалуйста, дайте мне знать, где именно проблема. Благодарю.

+1

Hi Nis не забудьте выполнить ping [email protected], а также с вашим вопросом у нас есть команда, которая может начать рассмотрение вашего манифеста и конфигурации xml. – PubNub

+0

Nis, просто проверяя, есть ли сообщение для поддержки. Если нет, пожалуйста. –

+0

Спасибо @CraigConover! Нашел проблему. Это была глупая ошибка. – Nis

ответ

2

Я нашел проблему.

Я ошибочно заявил < приемник> бирка за пределами < приложение> тег в манифесте. Так что приемник не регистрировался.

Спасибо.

+0

Согласен ..................... :) –

Смежные вопросы