1、需要有
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> 权限。这个权限只有系统应用才会拥有。
2、AndroidManifest.xml中配置服务
<service android:name=".feature.phonestate.InCallService" android:permission="android.permission.BIND_SCREENING_SERVICE"> <intent-filter> <action android:name="android.telecom.CallScreeningService"/> </intent-filter> </service>
3、在IncallService 重写 onScreenCall方法。
public class InCallService extends CallScreeningService { @RequiresApi(api = Build.VERSION_CODES.P) @Override public void onScreenCall(Call.Details details) { KLog.e("电话变更: " + details.getCallCapabilities()); String incomingNumber = details.getHandle().getSchemeSpecificPart(); rejectCallTwice(incomingNumber ); }
/** * 使用反映的方法挂断电话 */ public void rejectCallTwic