Merge pull request #31712 from volzhs/fix-vibrate-3.1

Suppress MissingPermission warning for Android vibration
This commit is contained in:
Rémi Verschelde 2019-08-27 17:42:24 +02:00 committed by GitHub
commit 0db32ced78
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 1 deletions

View File

@ -32,6 +32,7 @@ package org.godotengine.godot;
//import android.R;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
@ -58,6 +59,7 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Messenger;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.provider.Settings.Secure;
import android.support.v4.content.ContextCompat;
@ -330,11 +332,17 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC
});
}
@SuppressLint("MissingPermission")
public void vibrate(int p_duration_ms) {
if (requestPermission("VIBRATE")) {
Vibrator v = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
if (v != null) {
v.vibrate(p_duration_ms);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(p_duration_ms, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
//deprecated in API 26
v.vibrate(p_duration_ms);
}
}
}
}