2012-04-03 4 views
0

プログラムで通話を切断するのに次のコードを使用しましたが、機能しません。プログラムで発信通話を切断する方法

private void callDisconnect(){ 
    try{ 
     TelephonyManager manager = (TelephonyManager)this.getSystemService(this.TELEPHONY_SERVICE); 
     Class c = Class.forName(manager.getClass().getName()); 
     Method m = c.getDeclaredMethod("getITelephony"); 
     m.setAccessible(true); 
     ITelephony telephony = (ITelephony)m.invoke(manager); 
     telephony.endcall(); 
    } catch(Exception e){ 
     Log.d("",e.getMessage()); 
    } 
} 

誰でもこのことを教えてください。コードなどを変更する必要がありますか?

答えて

0

を... ...私は、ユーザーが自分の通話を終了することができると思い、あなたのコードを使用して...アンドロイド2.3 +でそのような通話を終了し、以前のバージョンのことはできませんいくつかのR & Dがありますが、パーフェクトソリューションを見つけるのは非常に困難です。

希望このリンクが役立ちます。 Link 1Link 2Stack Link

1

新しいバージョンのAndroidではこれ以上使用できません。ユーザは、すでに開始されている場合にいつ終了するかを決定する。ただし、通話をブロックすることはできます。

5

プログラムで呼び出しを切断するには、プロジェクトにITelephony.AIDLファイルを追加する必要があります。追加した場合、パッケージ名はcom/android/internal/telephony/ITelephony.AIDLでなければなりません:詳細はBlocking Incoming callを参照してください。 AIDLファイルをhereからダウンロードしてください。単にこのbroadcastreceiverを使用ITelephony

4

のコール使用endCall();方法を切断する

。私は私のアプリケーションの1つでそれをテストし、それは完全に動作します。

public class MyBroadcastReceiver extends BroadcastReceiver 
{ 

    @Override 
    public void onReceive(Context context, final Intent intent) 
    { 


     if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) 
     { 
      String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER); 

      if (phoneNumber.equals("123456")) 
      { 
       if (getResultData() != null) 
       { 

        setResultData(null); 
       } 


      } 

     } 


    } 

} 
+0

5.0.2 Lollipop – Sudara

関連する問題