/// <summary> /// Returns true if the device running the game has amplitude control /// </summary> /// <returns></returns> public static bool AndroidHasAmplitudeControl() { if (!MMVibrationManager.Android()) { return(false); } return(AndroidVibrator.Call <bool>("hasAmplitudeControl")); }
/// <summary> /// Returns true if the device running the game has vibrations /// </summary> /// <returns></returns> public static bool AndroidHasVibrator() { if (!MMVibrationManager.Android()) { return(false); } return(AndroidVibrator.Call <bool>("hasVibrator")); }
/// <summary> /// Stops all Android vibrations that may be active /// </summary> public static void AndroidCancelVibrations() { if (!MMVibrationManager.Android()) { return; } AndroidVibrator.Call("cancel"); }
/// <summary> /// Requests a default vibration on Android, for the specified duration, in milliseconds /// </summary> /// <param name="milliseconds">Milliseconds.</param> public static void AndroidVibrate(long milliseconds) { if (!MMVibrationManager.Android()) { return; } AndroidVibrateMethodRawClassParameters[0].j = milliseconds; AndroidJNI.CallVoidMethod(AndroidVibrator.GetRawObject(), AndroidVibrateMethodRawClass, AndroidVibrateMethodRawClassParameters); }
protected virtual void Start() { _text.text = Version; if (MMVibrationManager.iOS()) { _text.text += " iOS " + MMVibrationManager.iOSVersion.ToString(); } if (MMVibrationManager.Android()) { _text.text += " Android " + MMNVAndroid.AndroidSDKVersion().ToString(); } }
protected virtual void DisplayInformation() { if (MMVibrationManager.Android()) { _platformString = "API version " + MMVibrationManager.AndroidSDKVersion().ToString(); } else if (MMVibrationManager.iOS()) { _platformString = "iOS " + MMVibrationManager.iOSSDKVersion(); } else { _platformString = Application.platform + ", not supported by Nice Vibrations for now."; } DebugTextBox.text = "Platform : " + _platformString + "\n Nice Vibrations v1.2"; }
// Requests a vibration on Android for the specified pattern and optional repeat // Straight out of the Android documentation : // Pass in an array of ints that are the durations for which to turn on or off the vibrator in milliseconds. // The first value indicates the number of milliseconds to wait before turning the vibrator on. // The next value indicates the number of milliseconds for which to keep the vibrator on before turning it off. // Subsequent values alternate between durations in milliseconds to turn the vibrator off or to turn the vibrator on. // repeat: the index into pattern at which to repeat, or -1 if you don't want to repeat. public static void AndroidVibrate(long[] pattern, int repeat) { if (!MMVibrationManager.Android()) { return; } if ((AndroidSDKVersion() < 26)) { AndroidVibrator.Call("vibrate", pattern, repeat); } else { AndroidVibrationEffectClassInitialization(); VibrationEffect = VibrationEffectClass.CallStatic <AndroidJavaObject>("createWaveform", new object[] { pattern, repeat }); AndroidVibrator.Call("vibrate", VibrationEffect); } }
/// <summary> /// Requests a vibration of the specified amplitude and duration. If amplitude is not supported by the device's SDK, a default vibration will be requested /// </summary> /// <param name="milliseconds">Milliseconds.</param> /// <param name="amplitude">Amplitude.</param> public static void AndroidVibrate(long milliseconds, int amplitude) { if (!MMVibrationManager.Android()) { return; } // amplitude is only supported after API26 if ((AndroidSDKVersion() < 26)) { AndroidVibrate(milliseconds); } else { AndroidVibrationEffectClassInitialization(); VibrationEffect = VibrationEffectClass.CallStatic <AndroidJavaObject>("createOneShot", new object[] { milliseconds, amplitude }); AndroidVibrator.Call("vibrate", VibrationEffect); } }