うまくいくと思われる別の解決策を見つけました。インテントの多くの組み合わせと、上記の ACTION_CALL_BUTTON も試しましたが、4.3 では新しいダイヤラーが開き、進行中の現在の通話に移動しません。これが古い SDK でどのように動作するかはわかりません。多くの調査と試行の結果、これがうまく機能することがわかりましたが、おそらく最適化を使用できます...
telephonyManager = (TelephonyManager) getSystemService( Context.TELEPHONY_SERVICE );
if( telephonyManager.getCallState() == TelephonyManager.CALL_STATE_OFFHOOK )
{
ActivityManager m = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = m.getRunningTasks( 10 );
for( int i = 0; i < tasks.size(); ++i )
{
RunningTaskInfo task = tasks.get( i );
ComponentName component = task.baseActivity;
String packageName = component.getPackageName();
if( packageName.contains( "com.android.phone" ) )
{
m.moveTaskToFront( task.id, 0 );
return;
}
}
}
また、マニフェスト ファイルにアクセス許可を追加する必要があります。
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />