<span style="font-size:18px;">MainActivity.java</span>
package com.Utils.vibrate;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.os.Build; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.vibrate_btn);
btn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) { //VibatorUtils.Vibrate(MainActivity.this,5000);
long a[] = { 0,2000 } ;
VibatorUtils.Vibrate(MainActivity.this,a,true);
}
});
}
}

VibratorUtils.java (此处转自:http://blog.csdn.net/h7870181/article/details/8166987 )

package com.Utils.vibrate;

import android.app.Activity;
import android.app.Service;
import android.os.Vibrator; public class VibatorUtils { /**
* final Activity activity :调用该方法的Activity实例
* long milliseconds :震动的时长,单位是毫秒
* long[] pattern :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒
* boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次
* 关闭震动,只需调用 Vibrator.cancel()函数即可
*/ public static void Vibrate(final Activity act, long ms){
Vibrator vib = (Vibrator) act.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(ms);
} public static void Vibrate(final Activity act, long[] pattern,boolean isRepeat){
Vibrator vib = (Vibrator) act.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(pattern, isRepeat ? 1 : -1);
}
}

activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.Utils.vibrate.MainActivity"
tools:ignore="MergeRootFrame" > <Button
android:id="@+id/vibrate_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/vibate" /> </FrameLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.Utils.vibrate"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.VIBRATE"/> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.Utils.vibrate.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="app_name">vibrate</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="vibate">震动</string>
</resources>

代码已在MX2 (Android 4.4) 上测试成功

最新文章

  1. Java多线程基础学习(一)
  2. Universal Link 笔记
  3. sql服务器启动不了问题
  4. android之Volley实现瀑布流
  5. 【leetcode】Remove Duplicates from Sorted List (easy)
  6. python的变量
  7. php项目域名绑定和替换
  8. git reset and git checkout
  9. [转]JQuery判断浏览器类型版本1.9和2.0之后的区别
  10. HDU1372:Knight Moves(经典BFS题)
  11. 基于wax的lua IOS插件开发
  12. Git 笔记三 Git的初步使用
  13. iOS 10 创建iMessage App
  14. 【Ruby】Ruby的model学习——Active Record Associations
  15. FireFox站点标识按钮
  16. spark内存分配
  17. 55行代码实现Java线程死锁
  18. npm link 命令解析
  19. MySQL 数据类型说明解释
  20. ruby导出exl方式

热门文章

  1. Python属性描述符(一)
  2. Leetcode6---&gt;Zigzag Conversion(将给定字符串按照Z字排列,输出结果)
  3. 05-python进阶-简单监控程序开发
  4. 安装adb工包
  5. redis安装、配置和启动
  6. Spring 依赖注入(二、注入参数)
  7. 《学习笔记》Maven
  8. Eclipse + Apache Axis2 发布SOAP WebService(三)第一个程序Hello Axis2 SOAP!
  9. 【CCF】高速公路 tarjan强连通缩点
  10. Codevs 1169 == 洛谷 P1006 传纸条