问题描述
我们为酒店合作伙伴提供Android TV软件解决方案。具体来说,我们实现了默认启动器,当酒店客户进入房间时,该启动器会自动显示在电视屏幕上(带有问候)。
我们的客户最近问我们,有时酒店客人会使用自己的帐户登录YouTube或其他应用,而忘记注销,那么下一位客人将使用前一位客人的凭据使用这些应用。
我的问题是,有什么方法可以编写程序来在客人退房时自动注销每个应用程序,可能是由我们的后端触发的?我们需要root权限吗? 只是好奇这通常是如何完成的。
谢谢!
解决方法
也许您可以在后端结帐时使用pm clear com.google.android.youtube.tv
自动清除用户数据,而无需root访问。
希望能为您提供帮助。
,嗨,我只是尝试在Android TV设备上运行, 这是我的代码:
val accountManager = AccountManager.get(this)
Log.d("Nathan","size ${accountManager.accounts.size}")
accountManager.accounts.forEach {
Log.d("Nathan","accountname :${it.name}")
accountManager.removeAccount(it,this,callbackAccountManager,Handler())
}
//this is a callback
private var callbackAccountManager = object: AccountManagerCallback<Bundle> {
override fun run(future: AccountManagerFuture<Bundle>?) {
Log.d("Nathan","future :${future?.result?.getBoolean(AccountManager.KEY_ACCOUNTS)}")
}
}
//permission in AndroidManifest.xml
1. root permission:android:sharedUserId="android.uid.system"
2:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>