2011-10-16 6 views
0

私は、異なる振動パターンを持つアプリケーションを作成しようとしています。Basic4Android振動パターン

PhoneVibrateクラスには、振動(TimeMs as Long)機能しかありません。 私はまた、パターン を(ここを参照してください:http://mobile.tutsplus.com/tutorials/android/android-vibrator/)をサポートしている別のJava機能があることを見てきた

はそれがBasic4Androidにそれを使用することは可能ですか?この問題をどうやって解決するのですか? よろしく、

ニコラ

答えて

1

あなたはこのコードを使用することができます(電話でのライブラリとリフレクションライブラリが必要です):

Sub Process_Globals 
    Dim pv As PhoneVibrate 'Required to add the Vibrate permission 
End Sub 

Sub Globals 

End Sub 
Sub Activity_Create(FirstTime As Boolean) 
    Vibrate(500, 300) 
    ToastMessageShow("Click anywhere to stop vibrate.", True) 
End Sub 

Sub Activity_Pause (UserClosed As Boolean) 

End Sub 
Sub Activity_Resume 

End Sub 

Sub Activity_Click 
    CancelVibrate 
End Sub 

Sub Vibrate(On As Long, Off As Long) 
    Dim r As Reflector 
    r.Target = r.GetContext 
    r.Target = r.RunMethod2("getSystemService", "vibrator", "java.lang.String") 
    Dim pattern(2) As Long 
    pattern(0) = On 
    pattern(1) = Off 
    r.RunMethod4("vibrate", Array As Object(pattern, 0), Array As String("[J", "java.lang.int")) 
End Sub 

Sub CancelVibrate 
    Dim r As Reflector 
    r.Target = r.GetContext 
    r.Target = r.RunMethod2("getSystemService", "vibrator", "java.lang.String") 
    r.RunMethod("cancel") 
End Sub 
+0

おかげErel。私はあなたの解決策を試みます。 Basic4Androidの次期リリースで完全な振動機能を追加する予定ですか? – ottomano

+0

上記の方法は、Android APIで利用可能な完全な振動方法とまったく同じです。 – Erel

+0

はい、Reflectionを使用する代わりにB4A関数を意味します。 – ottomano