2013-01-07 33 views
6

我正在做一個Android項目。我可以成功接收推送通知。Android GCM打開燈光

如何在收到推送通知時打開燈光?

而且我還需要在收到推送通知時振動手機。

回答

0

請設置通知方法

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

添加該代碼欲瞭解更多信息請參閱本Link

添加權限到你的manifest文件

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

編輯 // 1.獲取一個參考NotificationManager

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

// 2.實例化通知

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

// 3. Defin E中的通知的擴展信息和意圖

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.通行證通知到NotificationManager

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

// ----------------- ----- //添加聲音 // ---------------------- // a。默認聲音

notification.defaults |= Notification.DEFAULT_SOUND; 

// b。從SD卡自定義音效

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

// ---------------------- //添加振動 // ------ ---------------- // a。默認振動

notification.defaults |= Notification.DEFAULT_VIBRATE; 

// b。自定義振動

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

// ------------------------ //添加閃燈 // ------ ------------------ // a。默認燈

notification.defaults |= Notification.DEFAULT_LIGHTS; 

// b。自定義燈光

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

使用本

notification.flags |= Notification.FLAG_SHOW_LIGHTS; 

請參閱本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());