Android_代码监听来电显示,为黑名单时挂断

配置:

<uses-permission android:name="android.permission.READ_PHONE_STATE">uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE">uses-permission>

<receiver android:name=".MyPhoneStrator">
    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE">action>
    intent-filter>
receiver>

代码:
package com.example.android_login; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.RemoteException; import android.telephony.TelephonyManager; import android.util.Log; import com.android.internal.telephony.ITelephony; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * Created by Administrator on 2017/7/15 0015. */ public class MyPhoneStrator extends BroadcastReceiver { private TelephonyManager tm; @Override public void onReceive(Context context, Intent intent) { Log. i( "test", "来电显示:" + intent.getAction()); if ( "android.intent.action.PHONE_STATE".equals(intent.getAction())){ Log. i( "test", "来电显示:"); //获取电话管理者 TELEPHONY_SERVICE tm = (TelephonyManager)context.getSystemService(Context. TELEPHONY_SERVICE); Log. i( "test", "来电显示1:"); String number=intent.getStringExtra( "incoming_number"); Log. i( "test", "来电显示3:"+number); int state= tm.getCallState(); Log. i( "test", "来电显示2:"); switch (state) { case TelephonyManager. CALL_STATE_RINGING: Log. i( "test", "来电显示:"+number); Class telephonyManagerClass=TelephonyManager. class; try { Method method=telephonyManagerClass.getDeclaredMethod( "getITelephony", null); method.setAccessible( true); ITelephony telephony= (ITelephony) method.invoke( tm, null); if (number.equals( "18873870231")){ telephony.endCall(); } } catch (Exception e) { e.printStackTrace(); } break; } } }}

你可能感兴趣的