Android-如何通过编程方式按用户名切换用户?

Android-如何通过编程方式按用户名切换用户?,android,Android,我是Android新手,我必须在工作中使用一个执行以下任务的应用程序: 我听一个套接字,它应该给我发送一个用户名 收到用户名后,我需要在平板电脑上切换到该用户帐户 如果我收到与当前活动用户相同的用户名,我不需要切换(显然) 我们的平板电脑是根和运行CyanogenMod 12.1与安卓5.1.1棒棒糖。 由于这不是从Play Store下载的商业版本,我可以假设我可能需要的所有权限都将被授予 我搜索了一种干净的代码方法,可以在不运行shell命令或其他黑客攻击的情况下实现这一点,但找不到任何东西

我是Android新手,我必须在工作中使用一个执行以下任务的应用程序:

  • 我听一个套接字,它应该给我发送一个用户名
  • 收到用户名后,我需要在平板电脑上切换到该用户帐户
  • 如果我收到与当前活动用户相同的用户名,我不需要切换(显然)
  • 我们的平板电脑是根和运行CyanogenMod 12.1与安卓5.1.1棒棒糖。 由于这不是从Play Store下载的商业版本,我可以假设我可能需要的所有权限都将被授予


    我搜索了一种干净的代码方法,可以在不运行shell命令或其他黑客攻击的情况下实现这一点,但找不到任何东西…

    我自己也没有尝试过,但您应该能够在设备上获得所有UserHandle设置,然后使用

    UserManager um=(UserManager)getSystemService(USER\u服务);
    List userProfiles=um.getUserProfiles();
    

    要使其正常工作,您必须(这应该不是一个问题,因为您说它是一个内部完全管理的应用程序)

    一旦您成为设备所有者,您是否设法获取用户名? 可以使用getUserProfiles和getSecondaryUsers,但它们都返回UserHandle。我无法在创建时注册用户名。 似乎唯一的方法是将MANAGE_USERS权限添加到清单中,但假定该应用程序是系统应用程序:


    我想我会在某个地方创建一个持久的列表。

    我觉得你的问题有点怪。当提到“用户”并切换它时,您指的是:1。Android“多用户”API以及如何使用它?( ). 2.一些代表您的用户的自定义服务器数据以及如何实现它?我指的是您可以通过Android设置菜单添加的用户。您拥有所有者(您)并且可以向您的设备添加更多用户。也许它被称为系统用户?目前,
    um.getUserProfiles()始终返回1项。可能是因为我需要将我的应用程序设置为设备管理员吗?可能是。。。首先将应用程序设置为管理员,然后再设置,因为这是一个必须的步骤。如果你是根用户,那么还有另一个选择可以让设备上的所有用户都使用FS(这不是我的第一选择)。您可以在这里看到一个示例:我现在按照您发送的链接的说明进行操作。首先设置设备管理员,然后我将尝试获取用户并切换用户。我将在这里更新一条评论,让你知道它是如何进行的(我会尽我最大的努力尽快完成)。关于如何使用用户的代码示例缺少很多代码来理解如何实现它。你可以发布一个工作代码示例来帮助第一个新手理解:-)?我想我得到了设备管理员,要检查它,我需要能够切换用户,但要这样做,我需要能够通过他的名字获得一个用户。我该怎么做?我有一个用户名列表,我需要能够通过选择一个名称切换到每个用户名。
    
    UserManager um = (UserManager) getSystemService(USER_SERVICE);
    List<UserHandle> userProfiles = um.getUserProfiles();