2012-03-19 13 views
2

私は自分の電話から電話番号(4/5番号)のリストに電話したい、私は電話をかけた後、その電話を終了した後、次の番号に電話をしなければなりません(これは自動的に行われます)。私の考えは次のとおりです:自動的に発信のリストを作成します

私たちはデフォルトで2回の発信が行われることを知っています。私は1つの発信コールを制限したいと思う。話し終えた後。次の番号がコールされますが、このプロセスは数字のリストまで続きます。発信コール、鳴動、オフフック、アイドルのステータスも確認する必要があります。助けてください。

答えて

2

このようにしてみてください。.. のlet NUMSは、番号のリストである。..

public class CallsActivity extends Activity { 

    final Context context = this; 
    public String num; 
    String LOG_TAG = "EMERGENCY CALL"; 

    public String[] pnum={"9666848344","9603939029","7404230210","9030109791"}; 
    ArrayList<String> b= new ArrayList<String>(Arrays.asList(pnum)); 
    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    num=b.get(0); 
    call(num); 
    // add PhoneStateListener 
    PhoneCallListener phoneListener = new PhoneCallListener(); 
    TelephonyManager telephonyManager = (TelephonyManager) this 
     .getSystemService(Context.TELEPHONY_SERVICE); 
    telephonyManager.listen(phoneListener, 
     PhoneStateListener.LISTEN_CALL_STATE); 



    } 
    void call(String num1) 
     { 
     Intent callIntent=new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:"+num1)); 
     startActivity(callIntent); 
     int indx=b.indexOf(num1); 

     //Log.i(LOG_TAG, "indx"+indx); 
     if (indx!=b.size()) 
      { 
       num=b.get(indx+1); 
      } 

     } 

    private class PhoneCallListener extends PhoneStateListener { 

    private boolean isPhoneCalling = false; 


    @Override 
    public void onCallStateChanged(int state, String incomingNumber) { 

     if (TelephonyManager.CALL_STATE_RINGING == state) { 
     // phone ringing 
     Log.i(LOG_TAG, "RINGING, number: " + incomingNumber); 
     } 

     if (TelephonyManager.CALL_STATE_OFFHOOK == state) { 
     // active 
     Log.i(LOG_TAG, "OFFHOOK"); 

     isPhoneCalling = true; 
     } 

     if (TelephonyManager.CALL_STATE_IDLE == state) { 
     // run when class initial and phone call ended, need detect flag 
     // from CALL_STATE_OFFHOOK 
     Log.i(LOG_TAG, "IDLE"); 

     if (isPhoneCalling) { 

      Log.i(LOG_TAG, "CALL..."); 

     // restart app 
     Intent i = getBaseContext().getPackageManager() 
      .getLaunchIntentForPackage(
       getBaseContext().getPackageName()); 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
//   startActivity(i); 
     call(num); 
      isPhoneCalling = false; 
     } 

     } 
    } 
    } 

}