Как я могу использовать AccountManager из другого приложения?
Я следовал руководству Удиника, чтобы сделать 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 из других приложений?