1.获取手机震动权限
- 在Mainfext中申请震动权限 : android:name=“android.permission.VIBRATE”
- 帮助类,获取系统震动权限并设置震动样式
import android.os.Vibrator;
import android.app.Activity;
import android.app.Service;
import android.content.Context;
public class VibrateHelp {
private static Vibrator vibrator;
/**
* 简单震动
* @param context 调用震动的Context
* @param millisecond 震动的时间,毫秒
*/
@SuppressWarnings("static-access")
public static void vSimple(Context context, int millisecond) {
vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
vibrator.vibrate(millisecond);
}
/**
* 复杂的震动
* @param context 调用震动的Context
* @param pattern 震动形式
* @param repeate 震动的次数,-1不重复,非-1为从pattern的指定下标开始重复
*/
@SuppressWarnings("static-access")
public static void vComplicated(Context context, long[] pattern, int repeate) {
vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
vibrator.vibrate(pattern, repeate);
}
/**
* 停止震动
*/
public static void stop() {
if (vibrator != null) {
vibrator.cancel();
}
}
-自定义View重写OnClickListener
import android.view.View;
import android.view.View.OnClickListener;
import com.hision.controllight.activity.SystemSettingActivity;
public class ViewClickVibrate implements OnClickListener {
private final int VIBRATE_TIME = 100;
@Override
public void onClick(View v) {
// TODO 根据设置中的标记判断是否执行震动
if ((int)SystemSettingActivity.sp.get("flag",0) == 1) {
VibrateHelp.vSimple(v.getContext(), VIBRATE_TIME);
}
}
}
- 标志位的存储我采用的是SharedPreferences的一个工具类具体实现如下
import android.content.Context;
import android.content.ContextWrapper;
import android.content.SharedPreferences;
import android.os.Environment;
import com.blankj.utilcode.util.Utils;
import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
/**
- https://www.jianshu.com/p/64ef6eb7406f
- https://github.com/grandcentrix/tray
- SharedPreferences的一个工具类,调用setParam就能保存String, Integer, Boolean, Float, Long类型的参数
- 同样调用getParam就能获取到保存在手机里面的数据
-
- @author xiaanming
-
<defaultAlpha>
-
保存数据:
-
SharedPreferencesUtils.setParam(this, "String", "xiaanming");
-
SharedPreferencesUtils.setParam(this, "int", 10);
-
SharedPreferencesUtils.setParam(this, "boolean", true);
<