Autore Topic: Notifiche - App chiusa in modo anomalo.  (Letto 591 volte)

Offline dimandrea

  • Nuovo arrivato
  • *
  • Post: 39
  • In realtà detesto con tutto me stesso Android.
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus MemoPad HD 7
  • Sistema operativo:
    Windows 7 - Windows 8.1 Up 1
Notifiche - App chiusa in modo anomalo.
« il: 05 Novembre 2014, 18:04:20 CET »
0
Salve a tutti.
Seguendo questa guida http://www.anddev.it/index.php?topic=11.0 ho scritto le seguenti classi.

Codice (Java): [Seleziona]
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;

public class MainActivity extends Activity {

        private static final int SIMPLE_NOTIFICATION_ID = 1;
       
        NotificationManager mNotificationManager;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.fragment_main);

                mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
               
                check_file();
               
               
        }

        private void check_file() {
                // VERIFICA ESISTENZA FILE IN ATTESA
            final String path = "mnt/sdcard/Notifiche/File";            // PATH IN CUI VERIFICARE LA PRESENZA DI FILE
                File path_check = new File(path);
                final String nome[] = path_check.list();
                Integer n = nome.length;
                if (n>0) {
                        // SE TROVA DEI FILE, LANCIA UNA NOTIFICA
                        sendSimpleNotification();
                }
        }
       
        protected void cancelSimpleNotification() {
                mNotificationManager.cancel(SIMPLE_NOTIFICATION_ID);
        }

        private void sendSimpleNotification() {

                NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(MainActivity.this);

                // Titolo e testo della notifica
                notificationBuilder.setContentTitle("Posizione - xxxxxx");
                notificationBuilder.setContentText("E' stata rilevata la posizione di un vettore.\nPremere qui per i dettagli. ");

                // Testo che compare nella barra di stato non appena compare la notifica
                notificationBuilder.setTicker("Nuova posizione rilevata - xxxxxx");

                // Data e ora della notifica
                notificationBuilder.setWhen(System.currentTimeMillis());

                // Icona della notifica
                notificationBuilder.setSmallIcon(R.drawable.ic_stat);

                // Creiamo il pending intent che verrà lanciato quando la notifica viene premuta
                Intent notificationIntent = new Intent(this, LetturaActivity.class);
                PendingIntent contentIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0);
               
                notificationBuilder.setContentIntent(contentIntent);

                // Impostiamo il suono, le luci e la vibrazione di default
                notificationBuilder.setDefaults(Notification.DEFAULT_SOUND| Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);

                mNotificationManager.notify(SIMPLE_NOTIFICATION_ID, notificationBuilder.build());
        }
}
Codice (Java): [Seleziona]
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.os.Build;

public class LetturaActivity extends ActionBarActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_lettura);     
                EditText editLati = (EditText)findViewById(R.id.editLati);
        EditText editLong = (EditText)findViewById(R.id.editLong);
        EditText editAlti = (EditText)findViewById(R.id.editAlti);
        EditText editPrec = (EditText)findViewById(R.id.editPrec);
        EditText editVett = (EditText)findViewById(R.id.editVett);
        EditText editData = (EditText)findViewById(R.id.editData);
       
        // File da leggere
        final String path = "mnt/sdcard/Notifiche/File";
        final File fileIn = new File(path, "resoconto");
        try {
                FileReader lettore = new FileReader(fileIn);
                                Scanner in = new Scanner(lettore);
                Integer i = 0;
                while (in.hasNextLine())  {
                        if (i == 0) {
                               
                        }
                        if (i == 1) {
                                editData.setText(in.nextLine());
                        }
                        if (i == 2) {
                                editLati.setText(in.nextLine());
                        }
                        if (i == 3) {
                                editLong.setText(in.nextLine());
                        }
                        if (i == 4) {
                                editPrec.setText(in.nextLine());
                        }
                        if (i == 5) {
                                editAlti.setText(in.nextLine());
                        }
                        if (i == 6) {
                                        editVett.setText(in.nextLine());
                                        }
                        i += 1;
                }
                in.close();
        } catch (FileNotFoundException e1) {
                e1.printStackTrace();
        }
        }
}

Ed ecco il LogCat
https://drive.google.com/file/d/0B_VVPxpS97eUQlo2OUp0X2t0N00/view?usp=sharing

All'avvio dell'app verifo la presenza di un file in una cartella. Il file c'è -> Mi arriva una notifica -> leggo la notifica e ci clicco sopra -> Parte l'activity per la lettura del file ma crasha e dice che l'app è chiusa in modo anomalo.
Stupido è chi lo stupido fa!