Italian intercettare le chiamate

paoloA

Member
Licensed User
Longtime User
ho fatto un programmino per intercettare le chiamata e come per gli sms (in un altro post) su avd e sul mio cell funziona su altri no...
allora come per gli sms suppongo siano i permessi...
io come permessi ho messo
AddPermission(android.permission.READ_PHONE_STATE)
AddPermission(android.permission.MODIFY_PHONE_STATE)
AddPermission("android.permission.CALL_PHONE") ' che non serve

ma forse manca ancora qualcosa.... qualcuno sa aiutarmi....
B4X:
Sub Process_Globals
   Dim PE As PhoneEvents
   Dim AC As AnswerCall
   Dim PhoneId1 As PhoneId
   Dim P As Phone
   
End Sub

Sub Service_Create
   rv = ConfigureHomeWidget("L1", "rv", 0, "prova")
   
   PE.InitializeWithPhoneState("PE",PhoneId1)
   AC.Initialize("AnswerCall")
   
End Sub

Sub Service_Start (StartingIntent As Intent)
   StartServiceAt("", DateTime.Now + 30 * DateTime.TicksPerSecond, True)
   If rv.HandleWidgetEvents(StartingIntent) Then Return
End Sub

Sub rv_RequestUpdate
   rv.UpdateWidget
End Sub

Sub rv_Disabled
   StopService("")
End Sub

Sub Service_Destroy

End Sub


' intercetto la chiamata
Sub PE_PhoneStateChanged (State As String, IncomingNumber As String, Intent As Intent)
   If IncomingNumber.Length > 0 Then ' evita il problema di quando chiami tu

         Dim modoTel As Int : modoTel = p.GetRingerMode   
         P.setringermode (p.RINGER_SILENT)
         AC.LetPhoneRing(0)

         If AC.isRinging = True Then

                KillCall

         End If
         AC.enableSpeakerphone
         P.setringermode (modoTel)

      End If
   End If
End Sub

' chiudo la chiamata in entrata
Sub KillCall
    Dim r As Reflector
    r.Target = r.GetContext
    Dim TelephonyManager, TelephonyInterface As Object
    TelephonyManager = r.RunMethod2("getSystemService", "phone", "java.lang.String")
    r.Target = TelephonyManager
    TelephonyInterface = r.RunMethod("getITelephony")
    r.Target = TelephonyInterface
    r.RunMethod("endCall")
End Sub
 

paoloA

Member
Licensed User
Longtime User
ok ho cambiato l'ordine dei permessi e adesso va, ma non mi termina la chiamata... apro un post per questo problema...
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Io con lo stesso codice non ho problemi, la chiamata la chiudo.
Nel manifest ho solo questo:
B4X:
AddPermission(android.permission.WRITE_SETTINGS)
AddPermission(android.permission.CALL_PHONE)

La lib AnswerCall è la 1.10
La lib Phone è la 2.0.0
Ma come mai la seguente istruzione è nera e non blu ? hai messo la librerie answercall, ho è solo un effetto del copia ed incolla ?
B4X:
Dim AC As AnswerCall
 
Top