android90.如何源码开发屏蔽所有来电
时间: 2023-05-12 21:01:54 浏览: 163
要在Android 9.0中源码开发屏蔽所有来电,需要以下步骤:
1. 编写一个广播接收器,在接收到来电广播时拦截并把来电挂断。
2. 在AndroidManifest.xml中注册这个广播接收器,使其能够接收到来电广播。
3. 获取CALL_PHONE权限,以便在接收到来电时挂断来电。
4. 在接收到来电广播时调用endCall()方法挂断来电。
代码示例:
```
public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("android.intent.action.PHONE_STATE")) {
TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Class c = Class.forName(telephonyManager.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephonyService = (ITelephony) m.invoke(telephonyManager);
telephonyService.endCall();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
```
在AndroidManifest.xml中注册广播接收器:
```
<receiver android:name=".CallReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
```
获取CALL_PHONE权限:
```
<uses-permission android:name="android.permission.CALL_PHONE" />
```
这样就可以在接收到来电广播时挂断来电,并实现屏蔽所有来电的效果。
阅读全文