最近研究了一下震动,给大家分享一下。
最初的时候用了一个很笨的方法。我知道通知中可以设置震动,每次震动都发一个通知,功能虽然实现了,但是不知道会不会有什么其他影响。
代码如下:
package com.adrainy;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class VibratorActivityTest extends Activity {
/** Called when the activity is first created. */
Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.Button01);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Notification n = new Notification();
NotificationManager nm = (NotificationManager) VibratorActivityTest.this.getSystemService(NOTIFICATION_SERVICE);
n.when = System.currentTimeMillis();
long[] vibrate = {1000, 1000, 2000, 500}; // 自定义的震动形式。
// 也可以试用默认的。Notification.DEFAULT_VIBRATE
//四个参数 : 1 触发事件后多长时间 震动
// 2 第一震动 多长时间 即 震动时长
// 3 距离第一个震动完后 多长时间 震动第二次
// 4 第二次震动的 时长
// 。。。。
n.vibrate = vibrate;
nm.notify(0, n);
}
});
}
}
记得在AndroidManifest.xml加上震动权限:
<uses-permission android:name="android.permission.VIBRATE" />
后来查阅了网上的资料及API文档,发现有Vibrator类,让我恍然大悟。直接看代码吧。
创建Vibrator 对象。
Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
long[] vibrate = {1000, 1000, 2000, 500}; // 自定义的震动形式。
// 也可以试用默认的。Notification.DEFAULT_VIBRATE
//四个参数 : 1 触发事件后多长时间 震动
// 2 第一震动 多长时间 即 震动时长
// 3 距离第一个震动完后 多长时间 震动第二次
// 4 第二次震动的 时长
// 。。。。
vibrator.vibrate(vibrate, -1); // 后面的参数是repeate
}
});
记得如果无限重复,记得在程序退出的是cancel掉ibrator,否则会一直震动,直到手机没电。(这样的程序整人还是不错啊,哈哈 )。
个人经验分享,希望对大家有帮助。
原文来源:尚观知识库 http://www.uplook.cn