Accountmanager | Coderz Repository

accountmanager

Last updated:

0 purchases

accountmanager Image
accountmanager Images

Free

Languages

Categories

Add to Cart

Description:

accountmanager

Account manager #
Account manager for Flutter
Supported platforms:

Android 8.1+ (API 27+)
iOS 12+

Getting Started #
Installation #
Add package to your dependencies in pubspec.yaml:
dependencies:
accountmanager: ^0.3.0
copied to clipboard
And call flutter pub get to download new dependencies
Using #
To import module add import 'package:accountmanager/accountmanager.dart'; at the
import block in your code.
At this moment plugin can work with Android OS API 27+ and iOS 12+ only. To allow plugin to manage
accounts you need to add few native code for Android:

Create xml/authenticator.xml resource in your Android project folder with next content:

<?xml version="1.0" encoding="utf-8"?>
<account-authenticator
xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="<YOUR_ACCOUNT_TYPE>"
android:icon="<YOUR_ICON_48DP>"
android:smallIcon="<YOUR_ICON_24DP>"
android:label="<YOUR_ACCOUNT_NAME>"/>
copied to clipboard

Implement AbstractAccountAuthenticator stub:

Authenticator.java
public class Authenticator extends AbstractAccountAuthenticator {

public Authenticator(Context context) {
super(context);
}

@Override
public Bundle editProperties(AccountAuthenticatorResponse response, String accountType) {
return null;
}

@Override
public Bundle addAccount(
AccountAuthenticatorResponse response, String accountType,
String authTokenType, String[] requiredFeatures, Bundle options
) throws NetworkErrorException {
return null;
}

@Override
public Bundle confirmCredentials(AccountAuthenticatorResponse response, Account account,
Bundle options) throws NetworkErrorException {
return null;
}

@Override
public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account,
String authTokenType, Bundle options) throws NetworkErrorException {
return null;
}

@Override
public String getAuthTokenLabel(String authTokenType) {
return null;
}

@Override
public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account,
String authTokenType, Bundle options) throws NetworkErrorException {
return null;
}

@Override
public Bundle hasFeatures(AccountAuthenticatorResponse response, Account account,
String[] features) throws NetworkErrorException {
return null;
}
}
copied to clipboard
AuthenticatorService.java
public class AuthenticatorService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
Authenticator authenticator = new Authenticator(this);
return authenticator.getIBinder();
}
}
copied to clipboard

Update AndroidManifest.xml:

Add required permissions, i.e.:
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
copied to clipboard
And register AuthenticatorService:
<service android:name=".AuthenticatorService" android:exported="false">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator"/>
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator"/>
</service>
copied to clipboard
On Android and iOS devices you also need to request permissions at the runtime. We advice to
use permission_handler (the example of using in our
repository).
dependencies:
permission_handler: ^10.0.0
copied to clipboard
More details about Android authentication system you can find on
Android Developers resource.
WARNING: iOS doesn't provide AccountManager entity, our plugin emulates it using
UserDefaults.standard to store all data.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.