Android Question Bluetooth Adapter Method


Active Member
Licensed User
Longtime User

The B4A forum has been my main learning point when it comes to building apps and I've learn't a lot!
I'm hoping this too will help others.

I wanted to try and use a external microphone for speech recognize with my app I can easily get the sound to work but getting the mic too work I don't seem to be able to find a starting point I understand that it comes from the Java object but the piece of code i found here don't supply any log output so i can't even try and workout.

Any pointers would really be helpful.

Sub Process_Globals
    Dim Voice As VoiceRecognition
End Sub

Sub Globals
    Dim profile As JavaObject
    Dim RecognitionDone As Boolean = False
End Sub
Sub Activity_Create(FirstTime As Boolean)
CallSub(Me, "GetProfileProxy")
End Sub
Sub GetProfileProxy
   Dim adapter As JavaObject = BluetoothAdapter
   Dim listener As Object = adapter.CreateEvent("android.bluetooth.BluetoothProfile.ServiceListener", _
     "profile", Null)
   Log("Success: " & adapter.RunMethod("getProfileProxy", Array(GetContext, listener, 1)))'1 = headset
End Sub

Sub Profile_Event (MethodName As String, Args() As Object) As Object
   'If MethodName = "onServiceConnected" Then
     Dim profile As JavaObject = Args(1)
   'End If
   Return Null
End Sub

Sub BluetoothAdapter As JavaObject
   Dim adapter As JavaObject
   adapter = adapter.InitializeStatic("android.bluetooth.BluetoothAdapter").RunMethod("getDefaultAdapter", Null)
   Return adapter
End Sub

Sub GetContext As JavaObject
  Return GetBA.GetField("context")
End Sub

Sub GetBA As JavaObject
  Dim jo As JavaObject
  Dim cls As String = Me
  cls = cls.SubString("class ".Length)
  Return jo.GetFieldJO("processBA")
End Sub

Sub Voice_Result(Success As Boolean, Text As List)
    If (Success) Then
        Dim Lines As String = ""
        For i = 0 To Text.Size - 1
            Lines = Lines & "|>" & Text.Get(i)
    End If
    RecognitionDone = False ' keep going
End Sub

Sub Activity_Resume
    If (RecognitionDone) Then
        RecognitionDone = False
    End If
End Sub

Sub Activity_Pause(UserClosed As Boolean)
End Sub