2011-10-16 86 views

回答

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

感謝埃雷爾。我會嘗試你的解決方案。你計劃在下一個Basic4Android版本中添加完整的Vibrate函數嗎? – ottomano

+0

上述方法與Android API中的完全振動方法完全相同。 – Erel

+0

是的,我的意思是使用反射的B4A功能。 – ottomano