我的Android设备中有两个不同的用户,我正在开发的应用程序在主用户中正常工作,但是当我切换到另一个Android用户时,由于下一个错误我触发了崩溃:
java.lang.SecurityException:获取包信息:既不是用户1110776 当前进程也没有android.permission.INTERACT_ACROSS_USERS。 在android.os.Parcel.readException(Parcel.java:1942) 在android.os.Parcel.readException(Parcel.java:1888) 在android.accounts.IAccountManager $ Stub $ Proxy.getAuthToken(IAccountManager.java:1488) 在android.accounts.AccountManager $ 11.doWork(AccountManager.java:1749) 在android.accounts.AccountManager $ AmsTask.start(AccountManager.java:2240) 在android.accounts.AccountManager.getAuthToken(AccountManager.java:1746) 在android.accounts.AccountManager.getAuthToken(AccountManager.java:1658) 在android.accounts.AccountManager.blockingGetAuthToken(AccountManager.java:1495)
我的应用基本上有一个登录,我使用AccountManager通过使用AccountManager.blockingGetAuthToken方法获取身份验证令牌。在主用户中,我可以正确使用该方法,并且登录工作正常,但是当我切换到第二个用户时,我在调用该方法后得到错误并崩溃。
这只发生在Android 8中,在以前的版本中,该应用程序可以正常运行我设备中的所有Android用户。
我尝试以某种方式授予 INTERACT_ACROSS_USERS 权限,但这是一项特殊权限,无法从第三方应用程序访问。
有什么想法吗?感谢