从设置中隐藏同步适配器的虚拟帐户

我用一个虚拟帐户创build了一个同步适配器,我不希望它出现在设置应用程序的帐户列表中,也不希望用户在设置中按下添加帐户button。 我已经在我的同步适配器定义中尝试android:userVisible =“false”,但仍然出现帐户。 我已经在模拟器和3个物理设备上试过了。 一切正常工作,它同步所有我需要的数据,唯一错误的是,我看到列表上的帐户,我不想。

我的authenticator.xml是:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" android:accountType="net.astagor.android.hhp.account" android:icon="@drawable/ic_launcher" android:smallIcon="@drawable/ic_launcher" android:label="@string/app_name" /> 

我的syncadapter.xml是:

 <sync-adapter xmlns:android="http://schemas.android.com/apk/res/android" android:contentAuthority="net.astagor.android.hhp" android:accountType="net.astagor.android.hhp.account" android:userVisible="false" android:supportsUploading="true" android:allowParallelSyncs="false" android:isAlwaysSyncable="true" /> 

我添加这样的adpater:

  Account account = AuthenticatorService.GetAccount(); AccountManager accountManager = (AccountManager) context .getSystemService(Context.ACCOUNT_SERVICE); if (accountManager.addAccountExplicitly(account, null, null)) { ContentResolver.setIsSyncable(account, StubProvider.AUTHORITY, 1); ContentResolver.setSyncAutomatically(account, StubProvider.AUTHORITY, true); ContentResolver.addPeriodicSync(account, StubProvider.AUTHORITY, new Bundle(), SYNC_FREQUENCY); } 

而我在帐户列表和添加帐户列表中获得帐户。

请帮助! 🙂

Solutions Collecting From Web of "从设置中隐藏同步适配器的虚拟帐户"

我find了解决scheme。 这是authenticator.xml的样子:

 <account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" android:accountType="net.astagor.android.hhp.account" /> 

你不能有这些行:

  android:icon="@drawable/ic_launcher" android:smallIcon="@drawable/ic_launcher" android:label="@string/app_name" 

如果你把它们放在里面,无论你设置了android:userVisible =“false”,都可以看到这个帐号。

这不是一个真正的答案,但是如果从authenticator.xml中删除标签,它不会显示在已添加的帐户列表中,但是单击添加帐户后,图标在列表中没有标签。 丑陋,可能不是一个好主意。 (这种方法至less隐藏帐户至less在我的nexus 4运行4.4 – 还没有检查其他设备)。

我相信用户可见标志同步适配器只会影响同步部分的显示,select一个帐户后,您可以看到最后一个同步时间,设置自动同步设置,并触发同步。

我也很想知道这一点。 这一定是可能的,因为我没有看到我的帐户名单上充斥着虚拟账户。 那么要么有一种方法,要么几乎没有我安装的应用程序正在困扰同步适配器?