Android 获取任何用户的用户名
我目前正在使用以下代码获取当前用户名:Android 获取任何用户的用户名,android,multi-user,limited-user,Android,Multi User,Limited User,我目前正在使用以下代码获取当前用户名: String username; { Cursor c = ctx.getContentResolver().query(Profile.CONTENT_URI, new String[]{Profile.DISPLAY_NAME}, null, null, null); if (c.getCount() > 0)
String username;
{
Cursor c = ctx.getContentResolver().query(Profile.CONTENT_URI,
new String[]{Profile.DISPLAY_NAME}, null, null, null);
if (c.getCount() > 0)
{
c.moveToFirst();
username = c.getString(0);
}
在我的测试设备(Samsung Galaxy Tab Pro)上,拥有正确的权限,这对“所有者”用户以及其他非限制用户都很有效。但是,对于有限的用户配置文件,情况似乎有所不同:
- 代码始终返回零光标行。我曾希望启用“联系人”应用程序可以让它工作,但那没有效果
- 无论如何,与非受限配置文件不同,受限用户帐户的配置文件似乎没有连接到锁屏上显示的名称,因此,即使我可以让此代码工作,我也不确定它会有多大用处
- 这是三星平板电脑的一个特点,还是这种行为在所有设备上都是一致的
- 有没有办法读取有限用户的个人资料
- 是否有更好的方法获取当前用户名
任何见解都值得赞赏。我已经尝试过搜索,可以说不可能获得“受限配置文件(用户)”的详细信息。 在后台,当您尝试读取“受限配置文件用户”的详细信息时,他们试图在数据库中更改并抛出
SQLiteexception:delete,然后重新写入现有数据库在getWritableDatabase上抛出SQLiteReadOnlyDatabaseException
。由于这个例外,我认为没有机会阅读用户名
如果不使用上述代码,您可以直接调用类的
getUsername()
。[API级别17]这将对您有所帮助。不,我不是在寻找电子邮件地址。您是否添加了读取配置文件数据的权限?是的,正如我所说的,它适用于非限制用户配置文件您指的非限制用户配置文件?您只能获取所有者配置文件的详细信息。另一个是来宾用户不幸的是,由于未知和可能不可知的原因,getUserName()
需要MANAGE\u USERS
权限,这对于SDK应用程序来说是不可能的。是的,如果我们有大量的代码,那么为什么我们应该选择更高的api级别。如果你运气好就告诉我。好吧,这很奇怪。我之前说过,“受限用户帐户的配置文件似乎没有连接到锁屏上显示的名称”,当时确实如此。但是,我的锁屏现在已经开始显示配置文件中的名称,我的代码现在正在努力获取用户名!我猜在为有限的用户创建一个配置文件和让该配置文件工作之间有一些奇怪的延迟?我肯定会留下这个问题,看看是否有人有什么可以补充的,特别是关于其他设备型号。这很奇怪。很好,现在它开始工作了。你有没有换衣服加什么?然后请分享。我再次更改了有限用户个人资料中的名称。我的密码很长一段时间都在读这个旧名字。最后,它看到了更新。在一个有限的账户内,这一切是如何运作(或不运作)的,真的有点奇怪。