У меня есть служба, работающая в режиме переднего плана, и я бы хотел обнаружить переход между пользовательскими сеансами на планшетах под управлением Android 4.2 или выше.Как обнаружить переключение между пользователями
Есть ли радиовещательный приемник, который я могу зарегистрироваться, чтобы получать уведомление?
Я заметил, что Google Music останавливает воспроизведение музыки, как только на экране блокировки выбирается другой пользовательский сеанс. Как он обнаруживает коммутатор?
ОТВЕТ ОБЪЯСНЕНИЕ
Спасибо @CommonsWare за правильный ответ. Я объясню немного больше, как определить пользовательский переключатель.
Прежде всего имейте в виду, что в документации явно указано, что приемники должны быть зарегистрированы через Context.registerReceiver
. Поэтому сделайте что-нибудь вроде:
UserSwitchReceiver receiver = new UserSwitchReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_USER_BACKGROUND);
filter.addAction(Intent.ACTION_USER_FOREGROUND);
registerReceiver(receiver, filter);
Затем в ресивере вы также можете получить идентификатор пользователя. Вот небольшой отрывок:
public class UserSwitchReceiver extends BroadcastReceiver {
private static final String TAG = "UserSwitchReceiver";
@Override
public void onReceive(Context context, Intent intent)
{
boolean userSentBackground = intent.getAction().equals(Intent.ACTION_USER_BACKGROUND);
boolean userSentForeground = intent.getAction().equals(Intent.ACTION_USER_FOREGROUND);
Log.d(TAG, "Switch received. User sent background = " + userSentBackground + "; User sent foreground = " + userSentForeground + ";");
int user = intent.getExtras().getInt("android.intent.extra.user_handle");
Log.d(TAG, "user = " + user);
}
}
Я удивлен, что служба продолжает работать в вашем случае. Вы действительно проверяли, что это продолжается? –
Да, так оно и есть. С одной стороны, я вижу, как журналы моего приложения формируют учетную запись другого пользователя. С другой стороны, когда я возвращаюсь к исходному пользователю (выполняя мой сервис), появляется значок уведомления переднего плана. И в журнале нет сообщения о том, что служба была остановлена. –
Я попытался использовать потоковое радио в Google Play, и они не убиты ни при переключении на другого пользователя. –