2011-10-16 10 views
0

Я пытаюсь создать приложение, которое имеет различные шаблоны вибрации.Basic4Android Vibration pattern

Я видел, что класс PhoneVibrate имеет только функцию Vibrate (TimeMs as Long). Я также видел, что есть также другая функция Java, которая поддерживает шаблоны (см здесь: http://mobile.tutsplus.com/tutorials/android/android-vibrator/)

Можно ли использовать его на Basic4Android? Как решить эту проблему? С уважением,

Nicola

ответ

1

Вы можете использовать этот код (требуется библиотека телефона и библиотеку Reflection):

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. Я попробую ваше решение. Планируете ли вы добавить полные функции Vibrate в следующую версию Basic4Android? – ottomano

+0

Вышеупомянутый метод точно такой же, как полный вибросигнал, доступный в Android API. – Erel

+0

Да, я имею в виду функцию B4A вместо использования Reflection. – ottomano