Autore Topic: Il led non si accende!  (Letto 1804 volte)

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Il led non si accende!
« il: 29 Settembre 2010, 08:53:39 CEST »
0
Vado subito al codice:
Codice (Java): [Seleziona]
Notification notification = new Notification(R.drawable.icon, contentText, System.currentTimeMillis());
notification.defaults |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_LIGHTS;
CharSequence contentTitle = context.getString(R.string.app_name);
Intent notificationIntent = new Intent(context, this);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
       
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);

Sul mio HTC Desire il led non vuole accendersi! Come mai? Devo impostare qualche permesso particolare come per la vibrazione?

Aggiungo una stranezza: come mai se clicco sulla notifica questa non scompare nonostante il FLAG_AUTO_CANCEL?
« Ultima modifica: 29 Settembre 2010, 09:04:56 CEST da MarcoDuff »

Offline Daystrom

  • Utente junior
  • **
  • Post: 90
  • Respect: +13
    • Mostra profilo
    • Starfleet
  • Dispositivo Android:
    HTC Magic + HTC Desire HD + Nexus S
  • Play Store ID:
    Daystrom
  • Sistema operativo:
    WXP
Re:Il led non si accende!
« Risposta #1 il: 29 Settembre 2010, 10:02:06 CEST »
+1
Sul mio HTC Desire il led non vuole accendersi! Come mai? Devo impostare qualche permesso particolare come per la vibrazione?

Aggiungo una stranezza: come mai se clicco sulla notifica questa non scompare nonostante il FLAG_AUTO_CANCEL?

Tempo fa avevo scritto questa classe per testare i led. Riuscivo ad attivarlo sul magic, sul desire ma non sul nexus one. Sul desire inoltre non potevo cambiare il colore.
Nel mio caso il led viene spento ogni volta che esci dall'applicazione (sia con home che con back) e viene riattivato quando l'applicazione viene nuovamente richiamata.
Nel manifest non ho messo niente di particolare, spero che possa aiutarti.

Nota: se devi spegnere il led è importante avere il nodificationId che hai usato per accenderlo. Mi pare inoltre di ricordare che il notificationId serve in ogni caso...

Codice (Java): [Seleziona]
public class Main extends Activity {
       
        int nodificationId;
        NotificationManager objNotificationManager;
       
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
    }
   
    @Override
    public void onResume() {
        super.onResume();
        startNotification();
    }
   
    @Override
    public void onPause() {
        super.onPause();
        stopNotification();
    }
   
    @Override
    public void onStop() {
        super.onStop();
        stopNotification();
    }
   
    public void startNotification() {
        objNotificationManager = ( NotificationManager ) getSystemService( Context.NOTIFICATION_SERVICE );
        Notification notification = new Notification();
        //notification.ledARGB = 0xff00ff00; //Green
        notification.ledARGB = 0xffff0000; //Red
        notification.flags = Notification.FLAG_SHOW_LIGHTS;
        notification.ledOnMS = 100;
        notification.ledOffMS = 100;
       
        nodificationId = (int)System.currentTimeMillis();
        objNotificationManager.notify(nodificationId, notification);
    }
   
    public void stopNotification() {
        if(objNotificationManager != null){
                objNotificationManager.cancel(nodificationId);
        }
    }
}

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Il led non si accende!
« Risposta #2 il: 29 Settembre 2010, 10:06:48 CEST »
+2
Ho risolto da solo rendendomi conto di quanto sono fesso!  :-[

  • Per il led bisogna attivare il flag Notification.FLAG_SHOW_LIGHTS (colpa del signor developer.android.com che dice di impostarlo solo per personalizzazioni, cosa non vera almeno nel mio Desire!)
  • Per il Notification.FLAG_AUTO_CANCEL, errore mio... lo aggiungevo a notification.defaults invece di notification.flags

Topic risolto!  ;-)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Il led non si accende!
« Risposta #3 il: 29 Settembre 2010, 10:19:24 CEST »
0
Uhh grazie a questo topic sono riuscito a risolvere anche io :D

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Il led non si accende!
« Risposta #4 il: 29 Settembre 2010, 10:26:56 CEST »
0
Curiosità, su quale cellulare Desire o Hero? Sono tutti gli HTC (probabilmente a causa di Sense) affetti da questo problemuccio?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Il led non si accende!
« Risposta #5 il: 29 Settembre 2010, 10:46:17 CEST »
0
Su desire, più tardi provo anche su hero...