2013-05-13 38 views
6

Ho sviluppato un'applicazione Android in cui ho usato la notifica da visualizzare quando l'applicazione viene avviata

L'applicazione funziona perfettamente quando ho eseguito il codice a emulatore Android dove come quando si tenta di eseguire lo stesso sul dispositivo reale che ha la versione di Android 4.0.4 di

mi getta errore nel logcat come

05-13 19:06:45.824: E/AndroidRuntime(15402): FATAL EXCEPTION: main 
05-13 19:06:45.824: E/AndroidRuntime(15402): java.lang.NoSuchMethodError: android.app.Notification$Builder.addAction 
05-13 19:06:45.824: E/AndroidRuntime(15402): at com.example.gpstracker.MainActivity.onCreate(MainActivity.java:54) 
05-13 19:06:45.824: E/AndroidRuntime(15402): at android.app.Activity.performCreate(Activity.java:4470) 
05-13 19:06:45.824: E/AndroidRuntime(15402): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
05-13 19:06:45.824: E/AndroidRuntime(15402): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
05-13 19:06:45.824: E/AndroidRuntime(15402): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 

il codice che ho provato è,

Notification noti = new Notification.Builder(this) 
       .setContentTitle("Driver GPS Tracker Application") 
       .setContentText("9ciphers") 
       .setSmallIcon(R.drawable.ic_launcher).setContentIntent(in) 
       .addAction(R.drawable.ic_launcher, "Start", i) 
       .addAction(R.drawable.ic_launcher, "Stop", in) 
       .addAction(R.drawable.ic_launcher, "Exit", pIntent).build(); 
     NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     // Hide the notification after its selected 
     noti.flags |= Notification.FLAG_AUTO_CANCEL; 

     notificationManager.notify(0, noti); 
     Toast.makeText(getApplicationContext(), "Application Started", Toast.LENGTH_SHORT).show(); 
     notifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

qualcuno può qui mi aiuterà a risolvere la questione mi sto perdendo qualcosa qui

grazie per il vostro aiuto

risposta

15

addAction() è stato aggiunto al livello di API 16; Android 4.0.4 esegue l'API di livello 15. Passa a NotificationCompat.Builder dal pacchetto di assistenza Android o chiama solo addAction() se Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN.

+0

ma ho bisogno di diverse azioni da fare sul pannello di notifica se uso 'NotificationCompact.Builder' non aggiunge una parte di azione nel pannello di notifica – NetStarter

+1

@NetStarter:" diverse azioni da fare sul pannello di notifica "non è stato supportato fino a Android 4.1. – CommonsWare

+1

@NetStarter http://developer.android.com/reference/android/app/Notification.Builder.html. Se la tua app supporta versioni di Android precedenti all'API di livello 4, puoi invece utilizzare NotificationCompat.Builder, disponibile nella libreria di supporto Android – Raghunandan

Problemi correlati