如何通过代码控制手机振动??

下面来看一个例子

1》在Manifest.xml文件中加入使用权限

    

完整的文件内容如下:

<?xml version="1.0" encoding="utf-8"?>                                                                                                


2》程序运行效果如下图所示:


布局文件activity_main.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>                                                    

3》程序完整代码如下(包含详细注示)

package com.linkcube.vibrateactivity;import android.app.Service;import android.os.Bundle;import android.os.Vibrator;import android.support.v7.app.ActionBarActivity;import android.view.Menu;import android.view.MenuItem;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.TextView;import android.widget.ToggleButton;public class MainActivity extends ActionBarActivity {// 声明控件private ToggleButton tb1 = null;private ToggleButton tb2 = null;private TextView tv1 = null;private TextView tv2 = null;private Vibrator vibrator = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}// 初始化private void init() {// 得到相应控件的引用tb1 = (ToggleButton) findViewById(R.id.tb1);tv1 = (TextView) findViewById(R.id.tv1);tb2 = (ToggleButton) findViewById(R.id.tb2);tv2 = (TextView) findViewById(R.id.tv2);// 注册事件tb1.setOnCheckedChangeListener(listener);tb2.setOnCheckedChangeListener(listener);vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);}OnCheckedChangeListener listener = new OnCheckedChangeListener() {public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {ToggleButton toggleButton = (ToggleButton) buttonView;switch (toggleButton.getId()) {case R.id.tb1:if (isChecked) {// 根据指定的模式进行震动// 第一个参数:该数组中第一个元素是等待多长的时间才启动震动,// 之后将会是开启和关闭震动的持续时间,单位为毫秒// 第二个参数:重复震动时在pattern中的索引,如果设置为-1则表示不重复震动// 第一个参数:等待1秒,震动2秒,等待1秒,震动3秒 ,等待1秒,震动5秒// 第二个参数:-1表示不重复, 如果不是-1, 比如改成1, 表示从前面这个long数组的下标为1的元素开始重复.vibrator.vibrate(new long[] { 1000, 2000, 1000, 3000, 1000,5000 }, 0);tv1.setText("振动已启动");} else {// 关闭震动vibrator.cancel();tv1.setText("震动已关闭");}break;case R.id.tb2:if (isChecked) {// 启动震动,并持续指定的时间vibrator.vibrate(3500);tv2.setText("振动已启动");} else {// 关闭启动vibrator.cancel();tv2.setText("震动已关闭");}break;}}};@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}



更多相关文章

  1. Android(安卓)ADT中增大AVD内存后无法启动:emulator failed to al
  2. Android自动打开和关闭软键盘
  3. Android(安卓)debug时一直处于waiting for debugger解决办法
  4. Android中阻止AlertDialog关闭实例代码
  5. Android(安卓)侧滑关闭Activity的实例
  6. Android中利用反射机制来控制AlertDialog窗口不被关闭
  7. android 自定义dialog 实例
  8. 监听android屏幕亮、暗、锁和关闭系统动作
  9. 【Android】Animation之震动效果动画在登录Activity上的应用

随机推荐

  1. Android中Display及DisplayMetrics理解
  2. 系出名门Android(8) - 控件(View)之TextS
  3. ImageView的属性android:scaleType作用
  4. Android--Android主流网络框架
  5. 高手速成android开源项目【developer篇】
  6. Android(安卓)apk的安装、卸载、更新升级
  7. android-HandlerThread、IntentServer
  8. android 扫雷游戏
  9. 为Android加入busybox工具
  10. [置顶] 我的Android进阶之旅------>Ubunt