3

私はandroid.iの初心者です。電話をかけるためにこのコードを書きます

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + bundle.getString("mobilePhone")));
context.startActivity(intent);

このコードを使用して電話の状態を見つけるリスナーがあることは知っています。

  private PhoneStateListener mPhoneListener = new PhoneStateListener() {
  public void onCallStateChanged(int state, String incomingNumber) {
  try {
  switch (state) {
  case TelephonyManager.CALL_STATE_RINGING:
  Toast.makeText(CaptureCall.this, "CALL_STATE_RINGING", Toast.LENGTH_SHORT).show();
  break;
  case TelephonyManager.CALL_STATE_OFFHOOK:
  Toast.makeText(CaptureCall.this, "CALL_STATE_OFFHOOK", Toast.LENGTH_SHORT).show();
  break;
  case TelephonyManager.CALL_STATE_IDLE:
  Toast.makeText(CaptureCall.this, "CALL_STATE_IDLE", Toast.LENGTH_SHORT).show();
  break;
  default:
  Toast.makeText(CaptureCall.this, "default", Toast.LENGTH_SHORT).show();
  Log.i("Default", "Unknown phone state=" + state);
   }
  } catch (Exception e) {
   Log.i("Exception", "PhoneStateListener() e = " + e);
  }
 }
};

実際に最初の番号に電話して、電話の状態を聞きます。電話の状態が に変わったらIDLE、2 番目の番号に電話します。しかし、それは機能していません。

そのタスクを実行する方法を教えてください。

4

2 に答える 2

0

次の番号を使用して、最初の番号に電話していただけますか?

       Intent intent = new Intent(Intent.ACTION_CALL);
       intent.setData(Uri.parse("tel:" + bundle.getString("mobilePhone")));
       context.startActivity(intent);

いいえの場合は、以下も追加してください。

       intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

そして、同じコードを使用して 2 番目の電話番号に電話し、IDLE 状態の最初の番号に電話をかけます。

ただし、最初の番号に電話をかける前でも IDLE 状態になることに注意してください。この場合、2 番目の番号が最初に呼び出されます。IDLE 状態では、最初の番号が呼び出された場合にフラグを設定してから、2 番目の番号への呼び出しを開始できます。

それが役に立てば幸い。

于 2013-12-04T16:40:28.350 に答える