마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

notification 푸시 알림 받아올때 조건을 어떻게 주나요?

0 추천

현재 만들고 있는 앱이 버스관련어플입니다

리스트뷰로 칸별로 버스 노선을 나누고 좌표구역을 설정해놨습니다. 그리고 칸마다 버튼을 달았어용

만약 리스트1에있는 버튼을 누르고 버스가 해당 좌표구역에 들어오면 푸시알림을 받아오도록 하고싶습니다.

 

현재 버튼 누르면 바로 푸시알림뜨게 하는거까진 했는데.. 

조건을 어떻게 해야되는지 모르겠네요ㅠㅠ 도와주세요ㅜㅠㅠㅠ

 

ListViewAdapter 코드 일부분입니다.

 @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        final int pos = position;
        final Context context = parent.getContext();

        // "listview_item" Layout을 inflate하여 convertView 참조 획득.
        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(com.satt.mjbus.R.layout.listview_item, parent, false);

        }

        // 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
        final ImageView iconImageView = (ImageView) convertView.findViewById(com.satt.mjbus.R.id.imageView1) ;
        ImageView lineImageView = (ImageView) convertView.findViewById(com.satt.mjbus.R.id.imageView2) ;

        TextView titleTextView = (TextView) convertView.findViewById(com.satt.mjbus.R.id.textView1) ;
        TextView descTextView = (TextView) convertView.findViewById(com.satt.mjbus.R.id.textView2) ;

        //버스아이콘 전체 안보이게
        iconImageView.setVisibility(View.INVISIBLE);
        descTextView.setVisibility(View.INVISIBLE);


        if(Latitude > 37.224000 && Latitude < 37.224400 ) {
            if (pos == 0) {
                iconImageView.setVisibility(View.VISIBLE);
                descTextView.setVisibility(View.VISIBLE);

            }
        }else if(Latitude >37.224400 && Latitude <37.231600 ){
            if( pos == 1 ){
                iconImageView.setVisibility(View.VISIBLE);
                descTextView.setVisibility(View.VISIBLE);
            }
        }else if(Latitude > 37.231600 && Latitude < 37.234000){
            if( pos == 2 ){
                iconImageView.setVisibility(View.VISIBLE);
                descTextView.setVisibility(View.VISIBLE);
            }
        }else if(Latitude > 37.234000 && Latitude < 37.238400){
            if( pos == 3 ){
                iconImageView.setVisibility(View.VISIBLE);
                descTextView.setVisibility(View.VISIBLE);
                eState = Constants.EBusState.Up;
            }
        }else if(Latitude > 37.234000 && Latitude < 37.238400){
            if( pos ==4 ){
                iconImageView.setVisibility(View.VISIBLE);
                descTextView.setVisibility(View.VISIBLE);
            }
        }else if(Latitude > 37.231600 && Latitude < 37.234000){
            if( pos == 5 ){
                iconImageView.setVisibility(View.VISIBLE);
                descTextView.setVisibility(View.VISIBLE);
            }
        }else if(Latitude > 37.222200 && Latitude < 37.231600){
            if( pos == 6 ){
                iconImageView.setVisibility(View.VISIBLE);
                descTextView.setVisibility(View.VISIBLE);
                eState = Constants.EBusState.Down;
            }
        }else if(Latitude > 37.219400 && Latitude < 37.222200){
            if( pos == 7 ){
                iconImageView.setVisibility(View.VISIBLE);
                descTextView.setVisibility(View.VISIBLE);
                eState = Constants.EBusState.Down;
            }
        }

        //버튼을 클릭했을 때 이벤트 발생
        final ImageButton btn = (ImageButton)convertView.findViewById(com.satt.mjbus.R.id.button);
        btn.setTag(position);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                int poss = (Integer) v.getTag();
                int check_num = 0;

                btn.setSelected(true);
                System.out.println("$$$$$$$$$$$$$$$" + pos);
                if (check_num == 0) {
                    btn.setSelected(true);
                    check_num = 1;
                } else if (check_num == 1) {
                    btn.setSelected(false);
                    check_num = 0;
                }
                NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
                Intent intent1 = new Intent(context.getApplicationContext(), ListViewAdapter.class); //인텐트 생성.

                Notification.Builder builder = new Notification.Builder(context.getApplicationContext());
                intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                //현재 액티비티를 최상으로 올리고, 최상의 액티비티를 제외한 모든 액티비티를 없앤다.

                PendingIntent pendingNotificationIntent = PendingIntent.getActivity(context, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);

                builder.setSmallIcon(R.drawable.bus)
                        .setTicker("버스가 잠시후 도착 예정입니다.")
                        .setWhen(System.currentTimeMillis())
                        .setContentTitle("푸쉬 제목")
                        .setContentText("푸쉬내용")
                        .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
                        .setContentIntent(pendingNotificationIntent)
                        .setAutoCancel(true)
                        .setOngoing(true);

                notificationManager.notify(1, builder.build());
                // Notification send
            }
        });
        btn.setFocusable(false);

        // Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
        ListViewItem listViewItem = listViewItemList.get(position);

        // 아이템 내 각 위젯에 데이터 반영
        iconImageView.setImageDrawable(listViewItem.getIcon());
        lineImageView.setImageDrawable(listViewItem.getline());
        titleTextView.setText(listViewItem.getTitle());
        descTextView.setText(listViewItem.getDesc());

        return convertView;
    }

 

 

안드롱쓰 (120 포인트) 님이 2017년 6월 6일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...