我尝试在我的应用上创建自定义帐户类型,连续十个小时。
我的推荐信在这里: http://docs.huihoo.com/android/4.2/training/id-auth/custom_auth.html
Android Developpers示例here。
我的步骤是:
Authenticator
类,扩展AbstractAccountAuthenticator
并覆盖7种方法。AuthenticatorService
类,扩展Service
类,初始化Authenticator
类AuthenticatorActivity
的{{1}}以及创建用户界面的位置以输入凭据。AccountAuthenticatorActivity
AndroidManifest.xml
文件并设置信息所有这些都做得很好,唯一要做的就是找到一种启动服务的方法。
所以我创建了另一个活动,并在@xml/authenticator
方法中启动它。
测试应用程序的时间,我决定在模拟器(API16)上运行它。 onCreate()
已启动,我们可以在运行流程中查看应用流程和应用服务!
所以我去DevTools / AccountsTester插入凭据......但这里没什么。仅限公司和电子邮件应用程序。我以为是因为模拟器,所以在我的GS3上尝试添加一个帐户,但它是一样的。
在我的logcat中没有错误,我们可以看到服务正在运行(在我的服务类中使用MainActivity
类)。
我的代码与我的第二个引用完全相同,我只是通过返回一个简单的Log
来改变服务器请求,所以在我的情况下,服务不使用外部服务器来获取有关提交的凭据的响应。
我的工作中是否有任何错过的步骤?
答案 0 :(得分:1)
我终于找到了一个小错误。当您使用Android Studio并创建新的XML ressource文件时(在示例中为authenticator.xml文件),会自动生成一些代码:
<?xml version="1.0" encoding="utf-8"?>
<ressources>
</ressources>
我的错误是在account-authenticatior
中插入我的ressources
项,而不是以root用户身份。
<?xml version="1.0" encoding="utf-8"?>
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="e@string/account_type"
android:icon="@drawable/myIcon"
android:smallIcon="@drawable/myIcon"
android:label="@string/app_name"
/>
我让这个答案给那些可能会像我一样想念的人。我还删除了startService()
中的MainActivity
方法,因为AuthenticatorService
是自动启动的。