如何使号码无法访问(类似于呼叫拦截器)?

Gok*_* KP 6 java mobile android airplane callblocking

手机有很多呼叫阻止应用,比如NQ Call Blocker.但在这些应用程序中,如果我们在黑名单中添加一个号码,呼叫者将听到"忙音".呼叫者也可以听到"振铃音"一小会儿.这意味着,看起来我们有意拒绝了这个电话.

现在,我正在尝试的是,开发一个呼叫阻止应用程序,它可以发送"Not Reachable Tone",而不是"Busy Tone"......

例如,从另一个号码拨打您的手机,当它响铃时,尝试将您的模式更改为"飞行模式".你会听到"Not Reachable Tone".[可能在某些Android设备中,长按电源按钮,并在您的手机响铃时激活"飞行模式".]

Rag*_*ood 5

您的手机不会发送"Not Reachable"信号.相反,它由您的运营商发送.

当您的号码无法访问时,它实际上意味着手机信号塔无法联系到您.所以,当有人打电话给你时,塔会试图找到你,如果它不能,它会发送"不可到达"信号.你不能伪造一个并从你的设备发送它.


Dyn*_*yna 4

您可以尝试实现PhoneStateListener,当您接到电话时,您可以将其与号码数组进行比较,如果被禁止,您可以切换到飞行模式。像这样的东西:

case TelephonyManager.CALL_STATE_RINGING: // incoming call
{
    for (int i = 0; i < forbiddenNumber.size; i++) {
        if (incomingNumber.equals(forbiddenNumber[i])) {
            // read the airplane mode setting
            boolean isEnabled = Settings.System.getInt(
                    getContentResolver(),
                    Settings.System.AIRPLANE_MODE_ON, 0) == 1;

            // toggle airplane mode
            Settings.System.putInt(getContentResolver(),
                    Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0
                            : 1);

            // Post an intent to reload
            Intent intent = new Intent(
                    Intent.ACTION_AIRPLANE_MODE_CHANGED);
            intent.putExtra("state", !isEnabled);
            sendBroadcast(intent);

        }
    }
Run Code Online (Sandbox Code Playgroud)

不要忘记许可WRITE_SETTINGS