Как обнаружить переключение между пользователями

У меня есть служба, работающая в режиме переднего плана, и я хотел бы обнаружить переключение между пользовательскими сеансами на планшетах под управлением 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 );
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос