我需要自动拒绝我设置的号码列表中的电话。
,我找到了一个解决方案,但不起作用
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();
}
}发布于 2022-11-29 13:36:53
我试过这个选择,但也没什么用。
class IncomingCallReceiver : BroadcastReceiver() {
private val telephonyService: ITelephony? = null
private val blacklistednumber = "+79289044090"
override fun onReceive(p0: Context?, p1: Intent?) {
val tm = p0?.getSystemService(Context.TELEPHONY_SERVICE)
try {
val c = Class.forName(tm?.javaClass?.name)
val m = c.getDeclaredMethod("getITelephony")
m.isAccessible = true
val telephonyService = m.invoke(tm) as ITelephony
val bundle: Bundle? = p1?.getExtras()
val phoneNumber = bundle?.getString("incoming_number")
Log.e("INCOMING", phoneNumber!!)
if (phoneNumber != null && phoneNumber == blacklistednumber) {
telephonyService.silenceRinger()
telephonyService.endCall()
Log.e("HANG UP", phoneNumber)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}https://stackoverflow.com/questions/74614391
复制相似问题