private static jvalue[] CreateVibrationEffect(long durationMs, int amplitude) { if (!IsAndroid()) { return(null); } if (!VibrateEffectArgsCache.TryGetValue((durationMs, amplitude), out var args)) { var effect = VibrationEffectClass?.CallStatic <AndroidJavaObject>("createOneShot", durationMs, amplitude); if (effect != null) { GlobalReferences.Add(effect); } args = new[] { new jvalue { l = effect?.GetRawObject() ?? IntPtr.Zero } }; VibrateEffectArgsCache[(durationMs, amplitude)] = args;