2012-11-05 88 views
3

Notification.DEFAULT_VIBRATE如何工作?如果我设置:Notification.DEFAULT_VIBRATE做什么?

notification.defaults |= Notification.DEFAULT_VIBRATE; 

会发生什么事?

文档不清楚。当且仅当本地短信应用程序或通话的振动选项设置为true时,如何才能使手机振动?

回答

3

您需要添加以下允许振动的授权。

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

和检测振动模式下可以使用AudioManager的getRingerMode()方法

AudioManager audiomanager = (AudioManager) 
           getSystemService(Context.AUDIO_SERVICE); 

    switch (audiomanager.getRingerMode()) { 
     case AudioManager.RINGER_MODE_SILENT: 
      Log.i("Mode","Silent mode"); 
      break; 
     case AudioManager.RINGER_MODE_VIBRATE: 
      Log.i("Mode","Vibrate mode"); 
      break; 
     case AudioManager.RINGER_MODE_NORMAL: 
      Log.i("Mode","Normal mode"); 
      break; 
    } 

编辑

可以使用查询电话,通知用户的振动设置下面的代码

Log.i("Setting", ""+audiomanager.shouldVibrate(AudioManager.VIBRATE_TYPE_RINGER)); 
Log.i("Setting", ""+audiomanager.shouldVibrate(AudioManager.VIBRATE_TYPE_NOTIFICATION)); 
+0

谢谢。有没有办法知道短信的设置? – kingston

+0

原始问题是:当且仅当本地短信应用程序或通话的振动选项设置为true时,如何才能使手机振动? – kingston

+0

还有另一种设置,通常可从本地短信应用程序访问做决定是否希望手机在收到短信的情况下振动 – kingston