Autore Topic: Notifiche non funzionanti  (Letto 469 volte)

Offline tommy95

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4 mini
  • Sistema operativo:
    Windows 8.1
Notifiche non funzionanti
« il: 28 Maggio 2015, 11:16:21 CEST »
0
Salve a tutti, ho seguito una guida su questo Forum per mandare le notifiche temporizzate quando il telefono è in blocco. Però non mi funziona, e vorrei un aiuto per cercare di capire come mai. Vi allego la classe Notifiche
Codice (Java): [Seleziona]
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.support.v4.app.NotificationCompat;

import java.util.Random;


public class Notifiche extends BroadcastReceiver {

    Main m =  new Main();
    Random random = new Random();
    @Override
    public void onReceive(Context context, Intent intent) {
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Notifica");
        wl.acquire();

        int NotificaID = intent.getIntExtra("id", 0);
        Intent resInt = new Intent(context, SceltaTipo.class);
        resInt.putExtra("id", NotificaID);
        PendingIntent resPI = PendingIntent.getActivity(context, 0, resInt, 0);

        int j = 10;
        int l = 100-j;
        int k = random.nextInt(l)+j;//Valori compresi tra 10 e 100

        if ((k % 10) == 0) { // Calcola il resto della divisione
            m.AumentoMonete_Notifiche(m.coin, k); // ATTENZIONE CONTROLLARE SE IL VALORE 'COIN' CHE GLI VIENE PASSATO SIA CORRETTO
        }
        else{
            while((k%10) == 0){
                k++;
            }
           m. AumentoMonete_Notifiche(m.coin, k);
        }

        NotificationCompat.Builder n = new NotificationCompat.Builder(context);
        n.setTicker("Oggi è il tuo giorno fortuntato"); // Appare quando arriva la notifica
        n.setContentTitle("Oggi è il tuo giorno fortunato"); // Titolo della notifica
        n.setContentText("Entra subito e riceverai" + k + " monete in più!"); // Testo della notifica
        n.setWhen(System.currentTimeMillis());
        n.setSmallIcon(R.mipmap.ic_launcher);
        n.setContentIntent(resPI);
        n.setAutoCancel(true);

        NotificationManager man = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        man.notify(NotificaID, n.build());

    }
}

Questa è invece la funzione all'interno del Main, dove faccio partire la notifica
Codice (Java): [Seleziona]
public void Avvio(){
        final TextView txt_Contatore = (TextView) findViewById(R.id.Contatore);
        SharedPreferences pref = getSharedPreferences(SharedPref, MODE_PRIVATE);
        if (pref.getBoolean("Avvio", true)){
            Toast.makeText(this, "Buon divertimento!", Toast.LENGTH_LONG).show();
            coin = 100;
            canzone_acquistata = false;
            cantante_scoperto = false;
            y = 0;
            txt_Contatore.setText(String.valueOf(y));
            SharedPreferences.Editor edit = pref.edit();
            edit.putBoolean("Avvio", false);
            edit.putInt("VerificaAvvio", chk);
            edit.commit();
            AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            Intent i = new Intent(this, Notifiche.class);
            i.putExtra("id", coin);
            PendingIntent pi = PendingIntent.getBroadcast(this, coin, i, 0);
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 30000, AlarmManager.INTERVAL_DAY, pi); //86400000


        }
        else{
            Toast.makeText(this, "Bentornato", Toast.LENGTH_LONG).show();
            SharedPreferences.Editor edit = pref.edit();
            chk = 1;
            edit.putInt("VerificaAvvio", chk);
            edit.commit();
            coin = RigeneraMonete();
            canzone_acquistata = Ritorna_Acquisto();
            cantante_scoperto =  Ritorna_Indizio();
            y = RitornaY();
            txt_Contatore.setText(String.valueOf(y));
            foto_indovinate = RecuperaCanzoni();
        }
    }
Qui è dove lancio la funzione 'Avvio()'
Codice (Java): [Seleziona]
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Button btn_invio = (Button) findViewById(R.id.btn_Invio);
        final EditText txt = (EditText) findViewById(R.id.editText1);
        final TextView txt_Coin = (TextView) findViewById(R.id.txt_Coin);
        final Button btn_musica = (Button) findViewById(R.id.btn_Musica);
        final Button btn_cantante = (Button) findViewById(R.id.btn_Autore);
        final TextView txt_Cantante = (TextView) findViewById(R.id.txt_Cantante);
        final TextView txt_Contatore = (TextView) findViewById(R.id.Contatore);


        Avvio(); // Imposta tutti i valori di base, se  è il primo avvio, altrimenti li rimette all'ultima chiusura
        txt_Coin.setText(String.valueOf(coin));
        CreaImmagine();

        btn_invio.setOnClickListener(new View.OnClickListener() {

Dove ho sbagliato?