0

Я пытаюсь сделать уведомление, но она продолжает говорить мне, чтоandroid.app.PendingIntent не может получить доступ к пакету находящиеся

PendingIntent in android.app.PendingIntent is not public it cannot be accessed outside the package 

это полный метод:

final Runnable m_Runnable = new Runnable() { 
    public void run() 

    { 
     FirebaseDatabase.getInstance().getReference("messages").endAt(user.getUid()).addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       //Toast.makeText(Chat.this,user.getUid(),Toast.LENGTH_SHORT).show(); 
       if (user != null) { 
        for (DataSnapshot ds : dataSnapshot.getChildren()) { 
         Conversation conversation = ds.getValue(Conversation.class); 
         lastMsgMil = Calendar.getInstance().getTimeInMillis(); 
         if (lastMsgDate == null 
           || lastMsgDate.before(conversation.getDate())) { 
          if (lastMsgMil < conversation.getTimeinmillies() 
            || (conversation.getReceiver().contentEquals(user.getUid()) 
            && conversation.getSender().contentEquals(buddy.getId()))) { 
           lastMsgDate = conversation.getDate(); 
           //lastMsgMil = conversation.getTimeinmillies(); 
           if (conversation.getReceiver().contentEquals(user.getUid()) && conversation.getSender().contentEquals(buddy.getId())) { 
            conversation.setStatus(Conversation.STATUS_RECEIVED); 
            FirebaseDatabase.getInstance().getReference("messages").child(ds.getKey()).child("status").setValue(Conversation.STATUS_RECEIVED); 
           } 
           if ((conversation.getReceiver().contentEquals(user.getUid()) 
             && conversation.getSender().contentEquals(buddy.getId())) 
             || (conversation.getSender().contentEquals(user.getUid()) 
             && conversation.getReceiver().contentEquals(buddy.getId()))) { 
            convList.add(conversation); 
           } 
           if ((conversation.getReceiver().contentEquals(user.getUid()) 
             && !conversation.getSender().contentEquals(buddy.getId()))) { 
            //notList.add(conversation.getMsg()); 
            NotificationManager notMan = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
            Intent intent = new Intent(Chat.this, Chat.class); 
            intent.putExtra(Const.EXTRA_DATA, conversation.getSender()); 
            PendingIntent pendingIntent = new android.app.PendingIntent(Chat.this, (int) System.currentTimeMillis(), intent, 0); 
            NotificationCompat.Builder builder = new NotificationCompat.Builder(Chat.this); 
            builder.setSmallIcon(R.drawable.ic_launcher) 
              .setContentTitle(conversation.getSender()) 
              .setContentText(conversation.getMsg()) 
              .build(); 
            //android.app.TaskStackBuilder stackBuilder = new android.app.TaskStackBuilder(Chat.this); 


           } 
          } 
         } 
        } 
       } 

и здесь является проблемой

NotificationManager notMan = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
            Intent intent = new Intent(Chat.this, Chat.class); 
            intent.putExtra(Const.EXTRA_DATA, conversation.getSender()); 
            PendingIntent pendingIntent = new android.app.PendingIntent(Chat.this, (int) System.currentTimeMillis(), intent, 0); 
            NotificationCompat.Builder builder = new NotificationCompat.Builder(Chat.this); 
            builder.setSmallIcon(R.drawable.ic_launcher) 
              .setContentTitle(conversation.getSender()) 
              .setContentText(conversation.getMsg()) 
              .build(); 

ответ

0

Вы не создаете PendingIntent через конструктор. Вы создаете PendingIntent одним из заводских методов, таких как getActivity(), getService(), или getBroadcast().

+0

Я добавил getActivity(), но это говорит мне, что can not reslove getActivity() –

+0

@MehdiGlida: 'getActivity()' является [методом 'static' на' PendingIntent'] (https://developer.android.com/reference /android/app/PendingIntent.html#getActivity(android.content.Context,%20int,%20android.content.Intent,%20int)). Любая достойная книга или курс по разработке приложений для Android покажет, как создать «Уведомление», в том числе о том, как создать для него «PendingIntent». – CommonsWare

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