2013-01-07 14 views
6

Robię projekt na Androida. Mogę pomyślnie otrzymywać powiadomienia push.Android GCM włącz światła

Jak włączyć światła po otrzymaniu powiadomienia push?

A także potrzebuję wibrować mój telefon komórkowy po otrzymaniu powiadomienia push.

Odpowiedz

0

prosimy Dodaj ten kod w metodzie ustawionej Notification

  notification.flags |= Notification.FLAG_AUTO_CANCEL; 
    notification.defaults |= Notification.DEFAULT_SOUND; 
    notification.defaults |= Notification.DEFAULT_LIGHTS; 
    notification.defaults |= Notification.DEFAULT_VIBRATE; 
9

Więcej informacji można znaleźć ten Link.

Dodaj uprawnienie do pliku manifestu

<uses-permission android:name="android.permission.VIBRATE"></uses-permission> 

EDIT // 1. Pobierz odwołanie do NotificationManager

String ns = Context.NOTIFICATION_SERVICE; 
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); 

// 2. instancję Notification

int icon = R.drawable.notification_icon; 
CharSequence tickerText = "Hello"; 
long when = System.currentTimeMillis(); 
Notification notification = new Notification(icon, tickerText, when); 

// 3. Definicja e notyfikacji powiększyła wiadomość i Intent

Context context = getApplicationContext(); 
CharSequence contentTitle = "My notification"; 
CharSequence contentText = "Hello World!"; 
Intent notificationIntent = new Intent(this, MyClass.class); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 

// 4. Przełóż Powiadomienie NotificationManager

private static final int HELLO_ID = 1; 
mNotificationManager.notify(HELLO_ID, notification); 

// ----------------- ----- // Dodaj dźwięk // ---------------------- // a. Domyślny dźwięk:

notification.defaults |= Notification.DEFAULT_SOUND; 

// b. Niestandardowy dźwięk z karty SD

notification.sound = Uri.parse("file:///sdcard/notification/SOUND.mp3"); 

// ---------------------- // Dodaj Vibration // ------ ---------------- // a. Domyślne drgania:

notification.defaults |= Notification.DEFAULT_VIBRATE; 

// b. Zwyczaj drgania

long[] vibrate = {0,100,200,300}; 
notification.vibrate = vibrate; 

// ------------------------ // Dodaj Migające // ------ ------------------ // a. Domyślne światła:

notification.defaults |= Notification.DEFAULT_LIGHTS; 

// b. Światła niestandardowe

notification.ledARGB = 0xff00ff00; 
notification.ledOnMS = 300; 
notification.ledOffMS = 1000; 
notification.flags |= Notification.FLAG_SHOW_LIGHTS; 
0

użycie tego

notification.flags |= Notification.FLAG_SHOW_LIGHTS; 

odnoszą ten link

2
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); 


    NotificationCompat.Builder mBuilder  = new NotificationCompat.Builder(context) 
                .setSmallIcon(icon) 
                .setContentTitle(title) 
                .setContentText(message) 
                .setAutoCancel(true) 
                .setDefaults(Notification.DEFAULT_LIGHTS); 


    Intent    notificationIntent = new Intent(context, MyActivity.class); 



    /* Set intent so it does not start a new activity */ 
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 


    AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 

    /* Even if the mode is set to "Sound & Vibration" in the phone, 
    * the status code that getRingerMode() returns is RINGER_MODE_NORMAL. 
    */ 
    switch (am.getRingerMode()) 
    { 
     case AudioManager.RINGER_MODE_VIBRATE: 
      mBuilder.setDefaults(Notification.DEFAULT_VIBRATE); 
      break; 
     case AudioManager.RINGER_MODE_NORMAL: 
      mBuilder.setDefaults(Notification.DEFAULT_SOUND); 
      break; 
     default: 
      mBuilder.setDefaults(Notification.DEFAULT_SOUND); 
    } 


    mBuilder.setContentIntent(intent);   
    notificationManager.notify(id, mBuilder.build()); 
Powiązane problemy