Я бы предложил поиграть с намерениями: концепция проста, поместите часть входа в систему в одном из двух приложений (в данном примере это будет приложение для студентов).
при попытке входа в систему, в зависимости от ответа от сервера, если это учетная запись учащегося, он просто войдет в систему, в противном случае, если это учетная запись учителя, вы проверите, установлено ли приложение учителя. если он установлен, вы просто запустите его и передадите необходимые параметры намеренно, в противном случае откройте магазин воспроизведения и установите необходимое приложение. Вот код для этого:
try {
//launch the app if it exists
Intent intent = new Intent("teacher app signature here");
intent.putExtra("some_parameter_name", "parameter value");
} catch (Exception e) {
// here is the case where the app is not installed
Uri marketUri = Uri.parse("market://details?id=teacher app signature here");
Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
startActivity(marketIntent);
}
в приложении учителя, вам нужно будет перехватить это намерение и его параметры:
String param= (String) getIntent().getSerializableExtra("some_parameter_name");
затем вы можете сохранить необходимые переменные в общих настройках, чтобы убедиться, что пользователь остается подключенным.