2016-04-07 20 views
1

ボタンを押して複数の電話をかけて(1つずつ)アプリを作りたいです。私は、電話番号が含まれている配列を持っています。私の現在のコードザッツAndroidスタジオ - 電話通話

public class MainActivity extends Activity { 

String[]numbers={ 
     "number1", 
     "number2"}; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      for (int i = 0; i < numbers.length;i++) { 

       if(TelephonyManager.CALL_STATE_RINGING) { 
        dialContactPhone(numbers[i]); 
       } 
      } 
     } 
    }); 
} 

private void dialContactPhone(final String phoneNumber) { 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 

     return; 
    } 
    startActivityForResult(new Intent(Intent.ACTION_CALL, Uri.fromParts("tel", phoneNumber, null))); 
} 

private void startActivityForResult(Intent tel) { 

} 

}

+0

正確にどこに貼り付けられていますか? – amalBit

+0

私は1つの番号を呼び出すことはできますが、配列からすべての番号を呼び出すことはできません –

答えて

0

あなたはこのexampleを実装する必要があります。
最初の通話が終了した後、次に開始します。

0

同時に両​​方の番号にダイヤルしているため、1回の通話は可能です。

最初のコールを行い、そのコールが終了するのを待ってから、次のコールを行う必要があります。

private class EndCallListener extends PhoneStateListener { 
    @Override 
    public void onCallStateChanged(int state, String incomingNumber) { 
     if(TelephonyManager.CALL_STATE_RINGING == state) { 
      Log.i(LOG_TAG, "RINGING, number: " + incomingNumber); 
     } 
     if(TelephonyManager.CALL_STATE_OFFHOOK == state) { 
      //wait for phone to go offhook (probably set a boolean flag) so you know your app initiated the call. 
      Log.i(LOG_TAG, "OFFHOOK"); 
     } 
     if(TelephonyManager.CALL_STATE_IDLE == state) { 
      //when this state occurs, and your flag is set, restart your app 
      Log.i(LOG_TAG, "IDLE"); 

      // Make your next call from here. 
     } 
    } 
} 

READ_PHONE_STATE権限が必要です。