Xamarin.Androidでバイブを制御する
ナビゲーションに移動
検索に移動
ググるとJavaやKotlinの例がいっぱいでてくる。 実装はなんら違わない。
権限[編集 | ソースを編集]
バイブを制御するには以下の権限を付与する必要がある。
- Vibrate
権限の付与方法は「Xamarin.Androidで権限を設定する」を参照。
実装[編集 | ソースを編集]
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Content;
namespace vibration
{
[Activity(Label = "vibe", MainLauncher = true, Icon = "@mipmap/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
Button button = FindViewById<Button>(Resource.Id.myButton);
// vibe
var vibrator = GetSystemService(Context.VibratorService) as Vibrator;
// バイブのパターン off,on,off,on,...
var pattern = new long[] { 100, 100, 200, 200, 300, 300 };
// リピート回数
// -1 = 1回
// 0 = Cancelが呼ばれるまで繰り返す
// n = n回
var repeat = 0;
// バイブon,off制御用
var isVibe = false;
button.Click += delegate
{
// バイブ存在チェック
if (vibrator == null || vibrator.HasVibrator == false)
{
return;
}
if (!isVibe)
{// バイブ開始
if (BuildVersionCodes.O <= Android.OS.Build.VERSION.SdkInt)
{
var effect = VibrationEffect.CreateWaveform(pattern, repeat);
vibrator.Vibrate(effect);
}
else
{
vibrator.Vibrate(pattern, repeat);
}
}
else
{// バイブ停止
vibrator.Cancel();
}
isVibe = !isVibe;
};
}
}
}