And*_*oid 8 android android-authenticator
我想阅读我通过authenticator xml文件设置的代码首选项.我发现无法访问在Android中的帐户身份验证器中设置的首选项以及如何在Android中的帐户身份验证器中设置的访问首选项完全没有答案,另一个说我需要创建自己的活动.这听起来很奇怪,因为这意味着我可以通过xml配置的首选项是无用的,因为我再也无法读取它们了.那不可能.有人知道更多吗?如果我真的需要创建一个自己的活动,我如何在身份验证器的情况下这样做?
来自AbstractAccountAuthenticator的文档:
首选项属性指向 PreferenceScreen xml 层次结构,其中包含可调用以管理身份验证器的 PreferenceScreen 列表。一个例子是:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/title_fmt"/>
<PreferenceScreen
android:key="key1"
android:title="@string/key1_action"
android:summary="@string/key1_summary">
<intent
android:action="key1.ACTION"
android:targetPackage="key1.package"
android:targetClass="key1.class"/>
</PreferenceScreen>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
因此,即使可以将个人偏好放入其中,但account_preferences.xml也无意这样做,因此无法访问这些值。
有关如何设置和处理 PreferenceScreen 意图的详细信息,请参阅此问题和答案。
编辑
对于非常基本的工作示例,您可以从同步适配器培训文档下载示例应用程序并进行如下编辑。
创建res/xml/account_preferences.xml看起来像这样的
<?xml version="1.0" encoding="UTF-8" ?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Category"/>
<PreferenceScreen
android:key="key1"
android:title="@string/app_name"
android:summary="@string/account_name">
<intent
android:targetPackage="com.example.android.network.sync.basicsyncadapter"
android:targetClass="com.example.android.network.sync.basicsyncadapter.EntryListActivity"/>
</PreferenceScreen>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
添加android:accountPreferences="@xml/account_preferences"到account-authenticator中的标签authenticator.xml。
此示例启动示例中的现有活动,但可以轻松启动 PreferenceActivity(或您想要的任何其他活动)。有关如何设置 PreferenceActivity 的详细信息,请参阅设置指南。
有关核心 Android 应用程序的真实示例,请参阅此处的电子邮件应用程序的实现。
| 归档时间: |
|
| 查看次数: |
514 次 |
| 最近记录: |