gpt4 book ai didi

android - 如何检测用户之间的切换

转载 作者:IT老高 更新时间:2023-10-28 23:12:00 26 4
gpt4 key购买 nike

我有一个在前台模式下运行的服务,我想检测运行 Android 4.2 或更高版本的平板电脑上的用户 session 之间的切换。

我可以注册任何广播接收器以获得通知吗?

我注意到,一旦在锁定屏幕上选择了另一个用户 session ,Google 音乐就会停止音乐播放。它是如何检测开关的?


答案解释

感谢@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 );

然后在接收器中您还可以检索用户 ID。这是一个小 fragment :

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 );
}
}

最佳答案

试试 ACTION_USER_FOREGROUNDACTION_USER_BACKGROUND .我没有使用它们,但它们是在 API 级别 17 中添加的,它们的描述似乎有帮助。

关于android - 如何检测用户之间的切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15392126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com