Как сделать телефонный звонок в Android и вернуться к моей активности, когда звонок сделан? - PullRequest
128 голосов
/ 13 октября 2009

Я запускаю действие, чтобы позвонить по телефону, но когда я нажал кнопку «Завершить вызов», оно не вернулось к моей активности. Подскажите, пожалуйста, как я могу запустить операцию вызова, которая возвращается ко мне при нажатии кнопки «Завершить вызов»? Вот как я звоню по телефону:

    String url = "tel:3334444";
    Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));

Ответы [ 21 ]

0 голосов
/ 29 июня 2014

При запуске звонка выглядит нормально.

Существует разница между android 11+ и более ранними версиями приложения.

Android 10 или менее вам нужно, чтобы начать новое намерение, Android 11+ вы просто используете BringTaskToFront

В состоянии вызова IDLE:

if (Build.VERSION.SDK_INT >= 11) {
    ActivityManager am = (ActivityManager) activity.getSystemService(Activity.ACTIVITY_SERVICE);
    am.moveTaskToFront(MyActivity.MyActivityTaskId, ActivityManager.MOVE_TASK_WITH_HOME);
} else {
    Intent intent = new Intent(activity, MyActivity.class);
    activity.startActivity(intent);
}

Я установил MyActivity.MyActivityTaskId, когда выполняю вызов своей активности следующим образом, если это не работает, установите эту переменную на родительской странице активности на странице, на которую вы хотите вернуться.

MyActivity.MyActivityTaskId = this.getTaskId();

MyActivityTaskId - статическая переменная в моем классе активности

public static int MyActivityTaskId = 0;

Надеюсь, это сработает для вас. Я использую приведенный выше код немного по-другому, я открываю свое приложение, как только на звонок отвечают, так что пользователь может видеть детали звонящего.

Я также установил некоторые вещи в AndroidManifest.xml:

/*Dont really know if this makes a difference*/
<activity android:name="MyActivity" android:taskAffinity="" android:launchMode="singleTask" />

и разрешения:

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />

Пожалуйста, задавайте вопросы, если вы застряли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...