2011-07-07 8 views
5

テレフォニーマネージャでの発信番号を検索します着信コール(状態の変化が鳴っているとき)。誰が私にいつ発信呼とその終了を検出できるか教えてください。は、どのように私はこれを使用しています

また、Eclipseエミュレータで発信呼び出しをシミュレートする方法もあります。 eclipseでエミュレータ制御を介して着信コールを行うことができました。

答えて

13

IntentFilterの目的でandroid.intent.action.NEW_OUTGOING_CALL文字列パラメータを使用するブロードキャストリスナーを使用し、AndroidMenifestの許可をPROCESS_OUTGOING_CALLSに与えることを忘れないでください。これは動作します。発信コールがあるたびに、トーストメッセージが表示されます。コードは以下のとおりです。

public static final String outgoing = "android.intent.action.NEW_OUTGOING_CALL" ; 
IntentFilter intentFilter = new IntentFilter(outgoing); 
BroadcastReceiver OutGoingCallReceiver = new BroadcastReceiver() 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     // TODO Auto-generated method stub 
     String outgoingno = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 
     Toast.makeText(context, "outgoingnum =" + outgoingno,Toast.LENGTH_LONG).show(); 
    } 
}; 
registerReceiver(brForOutgoingCall, intentFilter); 
1

MyPhoneReceiverを言わせて、新しいクラスを作成し、BroadcastReceiverからそれを拡張し、onReceiveメソッドを実装します。

public class MyPhoneReceiver extends BroadcastReceiver{ 
    @Override 
    public void onReceive(Context context, Intent intent){ 

     String phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); 

    } 
} 

別のクラスでは、言わせて

MainActivity.classのonCreateメソッド内。例えば。

<uses-permission 
    android:name="android.permission.PROCESS_OUTGOING_CALLS"> 
</uses-permission> 
のAndroidManifest.xmlのAndroidManifest.xmlで

<receiver 
    android:name=".MyPhoneReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
    </intent-filter> 
</receiver> 

も、追加で

IntentFilter filter = new IntentFilter("android.intent.action.NEW_OUTGOING_CALL"); 
    MyPhoneReceiver myPhoneReceiver = new MyPhoneReceiver(); 
    registerReceiver(myPhoneReceiver,filter);