如何自动注销Android TV中的所有应用程序?

问题描述

我们为酒店合作伙伴提供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"/>