我们知道,从安卓6.0以后对于权限管理做了很大的变动,震动也是需要权限申请的,那么我们可不可以在不需要权限到时候让手机震动呢?
经过测试发现,在长按事件中,如果返回true,手机会产生震动。查看源码后发现是调用了这个方法:
v.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
所以,我们就可以这样做了:
1.单击时的震动
tvAddress.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { v.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING); } });
2.长按时的震动
tvAddress.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { Toast.makeText(mContext, "长按震动", Toast.LENGTH_SHORT).show(); return true; } });