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....
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