17

画面上のオブジェクトに触れたときにデバイスを振動させようとしています。私はこのコードを使用しています:

 Vibrator v = (Vibrator) getSystemService(getApplicationContext().VIBRATOR_SERVICE); 
 v.vibrate(300);    

マニフェストファイルの許可を得ていますが、結果が得られないようです。助言がありますか?また、私のハードウェアは振動をサポートしています。

4

5 に答える 5

27

この回答によると、追加の許可を求めることなく、触覚フィードバック (振動) を実行できます。performHapticFeedbackメソッドを見てください。

View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);

注: このコードはテストしていません。

于 2013-12-27T21:06:27.970 に答える
26

これを試してください:

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"/>
于 2012-01-31T12:50:37.610 に答える
0

私のために働いている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"/>

頑張ってください✌:))

于 2020-04-22T17:53:17.580 に答える
0

探している人がいたら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"/>
于 2019-04-04T16:44:33.187 に答える