Это должно работать:
final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.TetherSettings");
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Однако это может зависеть от фактического устройства, Samsung, LG, Sony могут отличаться.
Если ваш процесс Python работает под Linux, а системный вызов prctl ()
открыт , вы можете использовать ответ здесь .
Это может привести к отправке сигнала ребенку, когда родительский процесс умирает.
Возможно, вам очень скоро удастся прочитать идентификатор вашего родительского процесса, а затем проверить, но, конечно, это склонно к условиям гонки. Родитель, который сделал порождение, мог умереть немедленно, и даже до того, как ваш процесс выполнил свою первую инструкцию.
Если у вас нет способа проверить, относится ли данный PID к «ожидаемому» родителю, я думаю, что трудно делать надежно.
Единственный известный мне надежный способ - это создать канал специально для этой цели. Дочернему ребенку придется неоднократно пытаться читать из конвейера, желательно неблокирующим образом или используя select. Будет выдана ошибка, если канал больше не существует (предположительно из-за смерти родителя).