2011-08-26 7 views
6

こんにちは私はそれに機能を追加するために着信呼び出し画面を無効にする方法があるのだろうか?もしそうなら、正しい方向に私を指すか、サンプルコードを提供することができますか?着信画面を上書きしますか?

---------------------------------------------- ---- EDIT:--------------------------

コールが着信すると受信機はうまく動作しますが、私はコール画面を無効にするために現在のウィンドウを取得しますか?これは私が今までに得たものですが、classCastExceptionがコンテキストからのアクティビティにキャストしようとしましたが、他の方法でウィンドウにアクセスすることはできません。

@Override 
    public void onReceive(Context context, Intent intent) { 
     Bundle extras = intent.getExtras(); 
     if (extras != null) { 
      String state = extras.getString(TelephonyManager.EXTRA_STATE); 
      Log.w("DEBUG", state); 
      Log.w("DEBUG", "-------------------------------------------------- Broadcast Received"); 
      if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
       String phoneNumber = extras 
         .getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
       Log.w("DEBUG", phoneNumber); 
       Activity activity = (Activity)context.getApplicationContext(); 
       Window window = activity.getParent().getWindow(); 
       window.addContentView(window.findViewById(R.layout.textalertbuttonview),null); 
       Log.w("DEBUG", "------------------------Button Added"); 

      } 
     } 
     else { 
      Log.w("DEBUG", "---------------------------------------------------no Extras"); 
     } 
    } 

------------------------------------------- -------編集2:--------------------------

私はいくつかの研究の後ではないようです実際の着信画面に要素を実際に追加することができます。だから私は自分のビューを作成し、着信呼び出し画面を無効にする必要があります。しかし、私はまだアイデアのためにオープンしています...私は着信コールプラスを見たが、そのプロジェクトのソースコードを見つけることができません。

+0

もっと良い解決策があれば、共有してください。私も同じことをしようとしています。あなたの助けをたくさんありがとう – png

答えて

2

は、一般的に言えば: あなたがPHONE_STATEを聞いBroadcastReceiverを設定することができます。

<receiver android:name=".CallsBroadcastReceiver" android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.PHONE_STATE" /> 
    </intent-filter> 
</receiver> 

次に、この受信機の内部で(携帯電話の状態を確認した後、あなたが呼び出しに、リンギング(扱うようにしたい、ハングアップなど。)現在のウィンドウ(呼び出し画面)を取得し、ビューを追加する必要があります。そして、状態が処理したくない場合はビューを削除してください。

非常に一般的ですが、それがアイデアです。

+0

ありがとう、しかし、私はどのようにonRecieveメソッド内から現在のウィンドウを取得できますか?私は使用したコードをいくつか掲載しましたが、クラスキャスト例外があります。 – Pengume

関連する問題