我正在关注Udinic's guide制作AccountManager
。我可以在存储帐户管理器文件的应用程序中使用它,但我无法从其他应用程序访问它。我可以自己访问帐户并使用GetAuthToken()
,一切都按照这种方式运行,但我似乎无法添加新帐户。它不会调用AccountAuthenticatorActivity
。
我在示例应用程序的清单中注意到它们引用了身份验证器应用程序的服务和活动。我试图在我的其他应用程序中执行此操作,但它不会使用清单中的服务进行编译:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.redacted.routines" android:versionCode="8" android:versionName="1.1.0" android:installLocation="auto">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="24" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<application android:label="@string/ApplicationName" android:theme="@style/AppTheme" android:icon="@mipmap/ic_launcher">
<activity android:name="com.redacted.authenticator.AccountAuthenticatorActivity" />
<service android:name="com.redacted.authenticator.AuthenticatorService">
<meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator" />
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
</service>
</application>
</manifest>
它还要我添加与身份验证器关联的xml文件,我认为这不对。如果我添加它们,它将编译但我仍然无法启动AccountAuthenticatorActivity
。我相信我遇到问题的原因与我的清单有关,因为我的其他应用需要了解AccountAuthenticatorActivity
和AuthenticatorService
。
我需要能够从其他应用中添加新帐户。当我致电AddAccount()
时,我可以调试客户经理所在的应用,我可以看到正在执行的AddAccount()
代码。但我没有错误,活动只是没有启动。我应该如何使用其他应用程序的AccountManager?