Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android震動與提示音實現代碼

Android震動與提示音實現代碼

編輯:關於Android編程

本文實例為大家分享了android消息提示的具體代碼,供大家參考,具體內容如下

protected AudioManager audioManager;
 protected Vibrator vibrator;

 audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); //此方法是由Context調用的
 vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); //同上

 /**
   * vibrate and play tone
   */
  public void vibrateAndPlayTone(EMMessage message) {
   if (System.currentTimeMillis() - lastNotifiyTime < 1000) {
      // received new messages within 2 seconds, skip play ringtone
      return;
    }
    
    try {
      lastNotifiyTime = System.currentTimeMillis();
      
      // check if in silent mode
      if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT) 
      {
         Log.e("TAG","已經調成靜音");
         return;
      }
      long[] pattern = new long[] { 0, 180, 80, 120 };
      vibrator.vibrate(pattern, -1); //震動

      if (ringtone == null) {
         Uri notificationUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

         ringtone = RingtoneManager.getRingtone(appContext, notificationUri);
         if (ringtone == null) {
           Log.d(TAG, "cant find ringtone at:" + notificationUri.getPath());
           return;
         }
       }
        
        
       if (!ringtone.isPlaying()) {
         //String vendor = Build.MANUFACTURER;
          
         ringtone.play();
          // for samsung S3, we meet a bug that the phone will
          // continue ringtone without stop
          // so add below special handler to stop it after 3s if
          // needed
         if (vendor != null && vendor.toLowerCase().contains("samsung")) {
           Thread ctlThread = new Thread() {
             public void run() {
               try {
                 Thread.sleep(3000);
                 if (ringtone.isPlaying()) {
                   ringtone.stop();
                 }
               } catch (Exception e) {
               }
             }
           };
           ctlThread.run();
       }
      
   } catch (Exception e) {
     e.printStackTrace();
   }
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved