2013-06-29 15 views
5

NQコールブロッカーのようなモバイル向けのコールブロッキングアプリケーションがたくさんあります。しかし、これらのアプリケーションでは、ブラックリストに番号を追加すると、発信者には「ビジートーン」が聞こえます。また、発信者は「Ringing Tone」を数秒間聞くことができます。つまり、意図的に電話を拒否しているようです。番号に到達できないようにするには(コールブロッカーと同様)?

私は、「ビジートーン」の代わりに「到達不能なトーン」を送信できるコールブロッキングアプリケーションを開発することを試みています。

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

答えて

2

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

に権限を忘れないでください
5

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

あなたの番号に到達できない場合、それは文字通りセルタワーがあなたに届かないことを意味します。だから誰かがあなたに電話をかけたとき、タワーはあなたを見つけようとしますが、それができなければ "Not Reachable"という信号を送信します。あなたは1つを偽造することはできず、代わりにあなたのデバイスからそれを送信することはできません。

3

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

あなたは、あなたのアプリがそれを行うことができないことをすぐに発見します。... DTMFトーンを回線上に「偽造」することはできません。あなたが電話会社ではないため)、また答えられた後、多くの人がgoogle-androidの見落としとみなします。両方についてここに多くの記事があります。

もちろん、私たちは手動でDTMFをキー入力することができます(または、私はエクステンションを呼び出すことができず、口座番号をパンチすることもできませんでした)。それはAPPが自動的に行うことができないということだけです...多くのPBX開発者。申し訳ありませんが、これは私たち全員にとって残念です...

関連する問題