- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试编写自己的 Authenticator 并将其用作两个不同应用程序的库:A 和 B。我关注了这篇文章:http://udinic.wordpress.com/2013/04/24/write-your-own-android-authenticator/ .我安装了应用程序 A,然后安装了应用程序 B。当应用程序 A 调用 AccountManager.addAccount() 时,AccountAuthenticatorActivity 打开。当应用程序 B 调用 AccountManager.addAccount() 时,什么也没有发生。如果我卸载应用 A 并在应用 B 中重试,AccountAuthenticatorActivity 将打开。
我的目标是对这两个应用程序使用相同的 AccountAuthenticatorActivity 和 AccountAuthenticator,但它似乎一次只能在一个应用程序上工作。
这是我的 AbstractAccountAuthenticator 中的 addAccount:
@Override
public Bundle addAccount(AccountAuthenticatorResponse response, String accountType, String authTokenType, String[] requiredFeatures, Bundle options) throws NetworkErrorException {
final Intent intent = new Intent(mContext, AuthenticatorActivity.class);
intent.putExtra(AuthenticatorActivity.ARG_ACCOUNT_TYPE, accountType);
intent.putExtra(AuthenticatorActivity.ARG_AUTH_TYPE, authTokenType);
intent.putExtra(AuthenticatorActivity.ARG_IS_ADDING_NEW_ACCOUNT, true);
intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response);
final Bundle bundle = new Bundle();
bundle.putParcelable(AccountManager.KEY_INTENT, intent);
return bundle;
}
这就是我从我的两个应用程序调用 accountManager.addAccount() 的方式:
private void addNewAccount(String accountType, String authTokenType) {
final AccountManagerFuture<Bundle> future = mAccountManager.addAccount(accountType, authTokenType, null, null, this, new AccountManagerCallback<Bundle>() {
@Override
public void run(AccountManagerFuture<Bundle> future) {
try {
Bundle bnd = future.getResult();
} catch (Exception e) {
e.printStackTrace();
}
}
}, null);
}
最佳答案
我遇到了同样的问题,所有这些困惑的关键是 AndroidManifest.xml
有关如何创建自定义身份验证器的教程有些陈旧(或至少是 Android Studio 之前的版本),因此它们声明您必须将权限、 Activity 和服务从身份验证器库复制到所有将要使用库 这对于 ANDROID STUDIO 是错误的 因为 Android Studio 会自动合并来自所有模块的 list 。
如果您使用的是 Android Studio,那么您需要做的就是让身份验证器模块中的权限、 Activity 和服务,并简单地在应用程序中添加对该模块的依赖。
这是一个示例 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:label="@string/auth_app_name"
android:theme="@style/Holo.Theme.Light.DarkActionBar">
<activity
android:name="ro.muerte.modules.auth.MyAuthenticatorActivity"
android:exported="true"
android:label="@string/auth_action_login"
android:windowSoftInputMode="adjustResize|stateVisible"
android:clearTaskOnLaunch="true" />
<service
android:name="ro.muerte.modules.auth.MyAuthenticateService"
android:exported="true">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
</service>
</application>
关于android - 无法让我的 AccountAuthenticatorActivity 在两个不同的应用程序中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19492483/
由于我在我的应用程序中使用操作栏而不是菜单,因此在我的 AccountAuthenticatorActivity 实现中没有显示操作栏或菜单。其他 Activity 显示操作栏没有问题。 我不确定这是
我有一个扩展了 AccountAuthenticatorActivity 的 LoginActivity。此 Activity 有几个 fragment ,即 androidx.fragment.ap
我正在尝试编写自己的 Authenticator 并将其用作两个不同应用程序的库:A 和 B。我关注了这篇文章:http://udinic.wordpress.com/2013/04/24/write
我正在按照教程制作身份验证器:http://blog.udinic.com/2013/04/24/write-your-own-android-authenticator/ 登录 Activity 需
如何将 getSupportFragmentManager() 传递给 AccountAuthenticatorActivity 中的外部库? 我需要使用 android-styled-dialogs
当我使用支持包时,是否可以通过 AccountAuthenticatorActivity 使用 fragment ? AccountAuthenitactorActivity 不是 FragmentA
我是一名优秀的程序员,十分优秀!