2016-04-07 16 views
1

Ich möchte eine App machen, die mehrere Telefonanrufe (nacheinander) durch Drücken einer Taste machen. Ich habe ein Array, wo die Telefonnummern enthalten sind.Android Studio - Anrufe

Das ist meine aktuellen Code:

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

Wo steckst du genau? – amalBit

+0

Ich kann 1 Nummer anrufen, aber ich kann nicht alle Nummern aus dem Array anrufen –

Antwort

0

Sie sollten diese example implementieren.
Und nachdem der erste Anruf beendet ist, starten Sie als nächstes.

0

Sie können nur einen Anruf tätigen, da Sie beide Nummern gleichzeitig wählen.

Sie sollten den ersten Anruf tätigen, dann warten, bis dieser Anruf beendet wird und dann den nächsten Anruf tätigen.

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. 
     } 
    } 
} 

Berechtigung READ_PHONE_STATE erforderlich.