Hi,
I want to use these API to handle 'Block incoming-call' in my app. How to do it ? Thanks !
which Api? Can you post a Link to the documentation of this Api?
What do you mean?Hi Star-Dust,
may not be able
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim PE As PhoneEvents
Dim PhoneId As PhoneId
End Sub
Sub Service_Create
PE.InitializeWithPhoneState("PE", PhoneId)
End Sub
Sub Service_Start (StartingIntent As Intent)
End Sub
Sub Service_Destroy
End Sub
Sub PE_PhoneStateChanged (State As String, IncomingNumber As String, Intent1 As Intent)
If State="RINGING" Then
'Squillo
if IncomingNumber ="0039333xxxx" then KillCall
Else If State="OFFHOOK" Then
' OFF Hook
else If State="IDLE" Then
'IDEL
End If
End Sub
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
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
canCurrentUserBlockNumbers = true
main_activity_create (java line: 339)
java.lang.SecurityException: Caller must be system, default dialer or default SMS app
at android.os.Parcel.readException(Parcel.java:1704)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
at android.content.ContentResolver.query(ContentResolver.java:538)
at android.content.ContentResolver.query(ContentResolver.java:480)
at de.donmanfred.BlockedNumberContractwrapper.query(BlockedNumberContractwrapper.java:45)
at b4a.example.main._activity_create(main.java:339)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
at b4a.example.main.afterFirstLayout(main.java:102)
at b4a.example.main.access$000(main.java:17)
at b4a.example.main$WaitForLayout.run(main.java:80)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6823)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1563)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1451)
What do you mean?
Have you tried that?
B4X:Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. Dim PE As PhoneEvents Dim PhoneId As PhoneId End Sub Sub Service_Create PE.InitializeWithPhoneState("PE", PhoneId) End Sub Sub Service_Start (StartingIntent As Intent) End Sub Sub Service_Destroy End Sub Sub PE_PhoneStateChanged (State As String, IncomingNumber As String, Intent1 As Intent) If State="RINGING" Then 'Squillo if IncomingNumber ="0039333xxxx" then KillCall Else If State="OFFHOOK" Then ' OFF Hook else If State="IDLE" Then 'IDEL End If End Sub 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