diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java b/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java index bef52e0456..41c5abc597 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java @@ -52,6 +52,7 @@ import android.media.AudioManager; import android.net.Uri; import android.os.Vibrator; +import android.os.VibratorManager; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; @@ -2610,9 +2611,20 @@ public int getSoftkeyCount() { public void vibrate(int duration) { if (!this.vibrateInitialized) { try { - v = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE); + /** + * Implementation takes into account for retrocompatability if the + * SDK ever needs to be reverted to pre 31 for some reason? + */ + if (Build.VERSION.SDK_INT >= 31) { + // SDK >= 31 + VibratorManager vibratorManager = (VibratorManager) getSystemService(Context.VIBRATOR_MANAGER_SERVICE); + v = vibratorManager.getDefaultVibrator(); + } else { + // Backward compatability for SDK < 31 + v = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE); + } } catch (Throwable e) { - Log.e("Codename One", "problem with virbrator(0)", e); + Log.e("Codename One", "problem with vibrator(0)", e); } finally { this.vibrateInitialized = true; }