web-dev-qa-db-ja.com

番号に到達できないようにする方法(コールブロッカーと同様)?

NQ Call Blockerのように、モバイル向けの通話ブロックアプリケーションはたくさんあります。ただし、これらのアプリケーションでは、ブラックリストに番号を追加すると、発信者には「ビジートーン」と聞こえます。また、発信者はほんの一瞬「着信音」を聞くことができます。つまり、意図的に通話を拒否しているように見えます。

さて、私が試しているのは、「ビジートーン」の代わりに「到達不能トーン」を送信できる通話ブロックアプリケーションを開発することです... ??

たとえば、別の番号から携帯電話に電話をかけ、呼び出し音が鳴ったら、モードを「機内モード」に変更してみてください。 「到達不能なトーン」が聞こえます。 [一部のAndroidデバイスでは、電源ボタンを長押しして、携帯電話が鳴っているときに「機内モード」を有効にすることができます。]

6
Gokul Nath KP

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);

        }
    }

WRITE_SETTINGSへの許可を忘れないでください

4
Dyna

「到達不能」信号は電話から送信されません。代わりに、それはあなたのキャリアによって送られます。

あなたの番号に到達できないとき、それは文字通りセルタワーがあなたに到達できないことを意味します。そのため、誰かがあなたに電話をかけると、タワーはあなたを見つけようとします。それができない場合は、「到達不能」信号を送信します。偽造してデバイスから送信することはできません。

5
Raghav Sood

Raghavが指摘しているように、これを行うことはできないので、次に考えられるのは、これらのキャリアDTMF制御トーンを偽造することです。ネットワークがビジー、電話番号が切断されているなど。

その後すぐに、アプリがそれを実行できないことに気付くでしょう...電話に応答する前(電話会社ではないため)でも、応答した後でも、DTMFのトーンを「偽造」することはできません。多くの人がグーグル-Androidによる見落としであると考えていると答えました。両方についてここに多くの投稿。

はい、もちろん、DTMFを手動で入力することはできます(または、内線電話を呼び出したり、アカウント番号を入力したりすることはできませんでした)。それは、APPが自動的にそれを行うことができないということです...多くの人の迷惑になりますPBX開発者。申し訳ありませんが、これは私たち全員にとって残念です...

3
Howard Pautz