view.performHapticFeedback(
HapticFeedbackConstants.VIRTUAL_KEY,
HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING // Ignore device's setting. Otherwise, you can use FLAG_IGNORE_VIEW_SETTING to ignore view's setting.
);
import android.view.View;
import android.os.Vibrator;
public class Main extends Activity implements OnClickListener
{
private View myView;
private Vibrator myVib;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
myVib = (Vibrator) this.getSystemService(VIBRATOR_SERVICE);
//myView can be any type of view, button, etc.
myView = (View) this.findViewById(R.id.myView);
myView.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
myVib.vibrate(50);
//add whatever you want after this
}
}
6条答案
按热度按时间hgtggwj01#
2019年12月24日更新:
必须通过以下方式启用视图触觉功能:
1.在xml中添加
android:hapticFeedbackEnabled="true"
。1.或者在代码中使用
view.setHapticFeedbackEnabled(true);
然而,还有一件事要考虑的是在虚拟设备中启用触觉设置。这有时候很烦人,所以我们有一些标志来帮助(这将以某种方式忽略这些启用设置):
Mayra的一个例子是,使用此代码运行触觉反馈。
这行代码可以很容易地包含在你的onclick动作中。好的部分是你不需要在AndroidManifest中设置权限(我不需要在SdkVersion“7”上设置权限(2. 1或2. 3是7))
还要注意,在我这里的代码中,只有当用户启用了全局触觉反馈时,它才会运行。
bq9c1y662#
下面是一个答案,尽管它可能不是最佳实现:
不要忘记,您还需要将“android.permission.VIBRATE”权限添加到程序的清单文件中。您可以通过将以下内容添加到“AndroidManifest.xml”文件中来完成此操作:
vzgqcmou3#
View有一个performHapticFeedback函数,它应该允许您在任何需要的时候执行它,即在OnClick侦听器上。
jljoyd4f4#
一种可以在活动中使用的简单方法。
6qftjkof5#
除了前面的答案,请确保“振动反馈”选项已从您的设备设置启用
u1ehiz5o6#
在我的例子中,当一个对话框片段打开时,我试图执行触觉反馈。这个问题的现有答案不起作用。我必须用
postDelayed
来 Package 它。