Диспетчер тревог Android не отменен из уведомления - PullRequest
0 голосов
/ 07 января 2019

Я использую будильник в службе переднего плана. Когда служба остановлена, сигнализация включена с уведомлением. Я хочу, чтобы, когда я нажимаю на уведомление, сигнал тревоги отменяется. Но мой код не работает, тревога не отменена. Я пробовал так много решений, которые я нашел в Google и здесь, но я никогда не уступаю

// я установил будильник в службе переднего плана

 private void startAlarm(){
    Log.i("coor_bur7","burda7");
    //alarm durdurma içn gerekli olanlar   sendBroadcast(intent) ve put extra alarm_off olacak

    //Toast.makeText(this, String.valueOf(id_durak)+ "  coordinat", Toast.LENGTH_SHORT).show();
    AlarmManager alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
    Intent intent=new Intent(getApplicationContext(), AlarmReceiver.class);
    intent.putExtra("extra","alarm_on");
    intent.putExtra("id_durak",id_durak);
    intent.putExtra("durak_ismi",durak_ismi);
    Log.i("c_durak_Adi",durak_ismi);

    PendingIntent pendingIntent=PendingIntent.getBroadcast(getApplicationContext(),1,intent,PendingIntent.FLAG_UPDATE_CURRENT);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        alarmManager.setExact(AlarmManager.RTC_WAKEUP, 0,pendingIntent);
        LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient,this);

    }else {
        alarmManager.set(AlarmManager.RTC_WAKEUP,0,pendingIntent);
        LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient,this);
    }
}

// и мой код в основной активности должен быть отменен согласно тревоге согласно извлеченным из уведомления

. `String type = getIntent (). GetStringExtra (" From ");

    if (type != null) {
        switch (type) {

            case "from_ringtone":
                Log.e("m1","m1");

                final String stop_from_ntf=getIntent().getStringExtra("extra");
                int id_durak=getIntent().getIntExtra("id_durak",-1);
                String durak_Adi=getIntent().getStringExtra("durak_adi");
                Log.i("id_main",String.valueOf(id_durak));
                Log.e("ntf", stop_from_ntf);
                assert notificationManager != null;
                notificationManager.cancel(CoordinatesCompareService.NOTIFICATION_ID_COMPARESERVICE);

                if(Utils.isMyServiceRunning(RingtoneService.class,this)){
                    final Intent intent_button=new Intent(getApplicationContext(), AlarmReceiver.class);
                    intent_button.putExtra("extra",stop_from_ntf);

                    final PendingIntent pendingIntent=PendingIntent.getBroadcast(getApplicationContext(),1,intent_button,PendingIntent.FLAG_UPDATE_CURRENT);
                    if(pendingIntent==null){
                        Log.e("pend","null");
                    }else {
                        Log.e("pend","not null");
                    }
                    final AlarmManager  alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);


                    // intent_button.putExtra("id_durak",id_durak);

                    alarmManager.cancel(pendingIntent);
                    sendBroadcast(intent_button);





                }

                if  (!Utils.isMyServiceRunning(CoordinatesCompareService.class,this)){
                    for(int g=0;g<durak_kayitList.size();g++){
                        if(durak_kayitList.get(g).getUid()==id_durak){
                            durak_kayitList.get(g).setAktif_mi(false);
                            durak_kayit_db.durak_kayit_dao().singleUpdate(durak_kayitList.get(g));
                            adapter.notifyDataSetChanged();
                            break;
                        }


                    }

                }


                break;
        }
    }

`

...