0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【react native】Google pixelで`Vibration.vibrate`が正常に動作しない(振動しない) 【振動フィードバック】

Posted at

はじめに

今回は、react native組み込みのVibrationが正常に動作しない時にチェックしたこと、および振動フィードバックについて書いていきたいと思います。

発生した現象

react native expoで開発をしている際、バイブレーションの機能を使用する必要があったのでVibration.vibrateを使用した。

手元でGoogle pixelとGalaxyでバイブレーションが動作することを確認したが、そのあとGoogle pixelで動作しないという報告を受けた。

調査した結果

主に以下2つの設定で、Vibrationを用いたバイブレーションが動作しないことがわかった。

  • バッテリーセーバーがONの時
  • 触覚フィードバックがOFF(0)の時

今回の直接の原因は、2個目の「触覚フィードバックがOFF(0)」だったようです。(自分で見つけられなかったのでとても落ち込みました...)

Androidにおける触覚フィードバックとは

触覚フィードバック(ハプティクスフィードバック)とは、ユーザーの操作による状態の遷移や重要なイベントなどが起きた時に振動を用いて知らせる機能です。

ゲーム機などで何かのアクションを起こしたときにコントローラーが振動するのは馴染み深いかと思いますが、それのスマホ版ということでしょうか。

Android Developersでは、触覚フィードバックのユースケースをいくつかあげています。

  • 注意が必要なイベントをユーザーに通知するため。
    たとえば、電話の着信やテキスト メッセージ、カレンダー上の今後の会議などです。
  • ユーザーの操作後にデバイスの状態変化を確認する場合。
    たとえば、ボタンの押下に対するクリック フィードバック、スマートフォンのロック解除、指紋の承認または拒否、カメラの有効化などです。
  • エフェクトでユーザーを喜ばせるため。
    このような効果により、進行中のユーザー操作を強化したり、物理的な操作をエミュレートしたりできます。たとえば、スクロール フィードバック、所定の位置にスナップするスライダー、アニメーション、サウンド、動画、ゲームと同期した触覚効果などがあります。

私が実装していたのは、2つ目の「ユーザーの操作後にデバイスの状態変化を確認する場合」に該当していました。

有効に使えばユーザーに対していい効果をもたらせそうです。

ただ、私個人としては過去にスマートフォンが結構な頻度で振動して、少しうざったく感じてしまい振動関連の設定をす
べて消してしまうことがあったので、私のような人ばかりではないとは思いますがここぞという場面で使用するのを検討した方がいいのかな、と思います。

触覚フィードバックがOFF(0)の時でもバイブレーションを強制するのは可能か?

結論から言うと、私はできませんでした。react-native-haptic-feedbackというライブラリを使用して試してみましたが、私の環境では振動させられませんでした。

触覚フィードバックがOFF(0)の時でもバイブレーションをさせられる方法を知っている方はコメントでご教授くださると嬉しいです🙇‍♂️

おわりに

最後までお読みいただきありがとうございました。
今回の問題を通して、振動フィードバックという新たな知識を得られたので今後活かせる機会があれば活かしたいと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?