0

I'm creating an app in which a user can choose any number to block I think right algorithm is : when phone rings, a function check that number is in list or not (check in database) and if there is, reject that call

i found this code in internet but it doesn't work,should i call onReceive function in my activity? what should i wrote on main activity?

here is the code:

public class IncomingCallReceiver extends BroadcastReceiver {
    private ITelephony telephonyService;
    private String blacklistednumber = "+458664455";

    @Override
    public void onReceive(Context context, Intent intent) {

       TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
       try {
         Class c = Class.forName(tm.getClass().getName());
         Method m = c.getDeclaredMethod("getITelephony");
         m.setAccessible(true);
         ITelephony telephonyService = (ITelephony) m.invoke(tm);
         Bundle bundle = intent.getExtras();
         String phoneNumber = bundle.getString("incoming_number");
         Log.e("INCOMING", phoneNumber);
         if ((phoneNumber != null) && phoneNumber.equals(blacklistednumber)) { 
            telephonyService.silenceRinger();
            telephonyService.endCall();
            Log.e("HANG UP", phoneNumber);
         }

       } catch (Exception e) {
         e.printStackTrace();
       }
}

interface:

 public interface ITelephony {

        boolean endCall();

        void answerRingingCall();

        void silenceRinger();

  }

i also added this below code to manifest

<receiver android:name="IncomingCallReceiver" >
        </receiver>
 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.CALL_PHONE"/>
   <uses-permissionandroid:name="android.permission.PROCESS_INCOMING_CALLS"/>

did i miss anything?

Aryana
  • 11
  • 1
  • 6
  • This is Broadcast Receiver that will is getting called when there is a call. In your Activity you need to register this receiver. For more info check this http://developer.android.com/reference/android/content/BroadcastReceiver.html – aleksamarkoni Jun 26 '15 at 11:22
  • tanx, i change interface to file "ITelephony.aidl" and its working! – Aryana Jul 01 '15 at 07:38

0 Answers0