画面上のオブジェクトに触れたときにデバイスを振動させようとしています。私はこのコードを使用しています:
Vibrator v = (Vibrator) getSystemService(getApplicationContext().VIBRATOR_SERVICE);
v.vibrate(300);
マニフェストファイルの許可を得ていますが、結果が得られないようです。助言がありますか?また、私のハードウェアは振動をサポートしています。
画面上のオブジェクトに触れたときにデバイスを振動させようとしています。私はこのコードを使用しています:
Vibrator v = (Vibrator) getSystemService(getApplicationContext().VIBRATOR_SERVICE);
v.vibrate(300);
マニフェストファイルの許可を得ていますが、結果が得られないようです。助言がありますか?また、私のハードウェアは振動をサポートしています。
この回答によると、追加の許可を求めることなく、触覚フィードバック (振動) を実行できます。performHapticFeedback
メソッドを見てください。
View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
注: このコードはテストしていません。
これを試してください:
Button b = (Button) findViewById(R.id.button1);
b.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Vibrator vb = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vb.vibrate(100);
return false;
}
});
この権限をmanifest.xmlに追加します
<uses-permission android:name="android.permission.VIBRATE"/>
私のために働いているkotlin ext fun
触覚効果のバイブロは5ミリ秒!! ( SHORT_HAPTIC_FEEDBACK_DURATION
)
fun Context.performHapticFeedback() {
val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val vibrationEffect = VibrationEffect.createOneShot(HAPTIC_FEEDBACK_DURATION, VibrationEffect.DEFAULT_AMPLITUDE)
vibrator.vibrate(vibrationEffect)
} else {
vibrator.vibrate(TimeUnit.MILLISECONDS.toMillis(SHORT_HAPTIC_FEEDBACK_DURATION))
}
}
private const val SHORT_HAPTIC_FEEDBACK_DURATION = 5L
利用方法
addOnItemTouchListener(ItemTouchListener { position, event ->
if (event.action == MotionEvent.ACTION_DOWN) {
context.performHapticFeedback()
}
})
許可
<uses-permission android:name="android.permission.VIBRATE"/>
頑張ってください✌:))
探している人がいたらkotlin
、
val vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
vibrator.vibrator(durationInMilliSeconds)
Android-O 以降の場合は、
val vibrationEffect = VibrationEffect.createOneShot(vibrationDuration, vibrationAmplitude)
vibrator.vibrator(vibrationEffect)
バイブレーションをキャンセルしながら、
vibrate.cancel()
また、アクセス許可を追加する必要がありますAndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE"/>