Android開発学習ノート:携帯電話の振動制御の浅い分析


AndroidシステムではVibrator対象者が携帯電話の振動の処理を担当しており、具体的な実現方法は以下の通りである.
1.振動子Vibratorの例を取得する:

  
  
  
  
  1. Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);  
  2.  
  3. getSystemService(VIBRATOR_SERVICE):  

 
2.vibrateメソッドを呼び出して振動を発生させる:
  • は、振動のミリ秒数
  • を指定するためにvibrate()にのみパラメータを伝達する.
    
      
      
      
      
    1. // 5  
    2. vibrator.vibrate(5000); 
  • vibrate()メソッドに複数のパラメータ
  • を渡す
    
      
      
      
      
    1.  
    2. // 1 , 2 , 1 , 3  
    3. long[] pattern = {1000200010003000};    
    4. //-1 ,  -1,  1,  long 1 .  
    5. vibrator.vibrate(pattern, -1); 

     
    3.振動のキャンセル
    
      
      
      
      
    1. vibrator.cancel(); 

     
    4.AndroidManifest.xmlファイルへのアクセス権の追加
    
      
      
      
      
    1. <uses-permission android:name="android.permission.VIBRATE" /> 

     
    次の例は、振動を発生させる2つの方法を含む.
    VibratorDemoActivity.java
    
      
      
      
      
    1. package com.lingdududu.test;  
    2.  
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5. import android.os.Vibrator;  
    6. import android.view.MotionEvent;  
    7. /*  
    8.  * @author lingdududu  
    9.  *  , 1 2 , 1 , 3  
    10.  *  , onTouchEvent , 1  
    11.  */ 
    12.  
    13. public class VibratorDemoActivity extends Activity {  
    14.          
    15.     @Override 
    16.     public void onCreate(Bundle savedInstanceState) {  
    17.         super.onCreate(savedInstanceState);  
    18.         setContentView(R.layout.main);  
    19.         Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);  
    20.  
    21.         long[] pattern = {1000200010003000}; // OFF/ON/OFF/ON......                
    22.         vibrator.vibrate(pattern, -1);  
    23.  
    24.     }  
    25.  
    26.     @Override 
    27.     public boolean onTouchEvent(MotionEvent event) {  
    28.         if (event.getAction() == MotionEvent.ACTION_MOVE) {  
    29.             Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);  
    30.             vibrator.vibrate(1000);  
    31.         }  
    32.         return super.onTouchEvent(event);  
    33.     }  
    34. }  
    35.  

    注意:AndroidManifestで覚えています.xmlファイルに権限を追加したり、プログラムを本物で実行してこそ振動の効果があり、シミュレータでは振動はサポートされません. 
    PS:私はITブログコンテストに参加しています.皆さん、私に一票を投じてください.
    http://blog.51cto.com/contest2011/3061169