Android如何在账户设置中添加App的账户

Android系统为外部服务提供了账号登录的机制,用于同步数据等作用。
进入设置->账户->添加账户,即可看到目前手机上有哪些App提供了同步服务。
这里写图片描述

接下来将会演示如何在App中定义登录服务并添加一个登录选项到这里。

账户的授权和同步

账户功能主要有2个:授权和同步。

授权:即账户登录怎么把关,可以通过验证账户密码的形式,也允许直接通过AccountManager的addAcount接口直接添加账户。
需要继承AbstractAccountAuthenticator来实现我们自己的授权机制。

同步:以邮箱账户为例,在添加一个Exchange邮箱账户后,我们可以看到它提供了联系人,日历,邮件等同步功能,这些同步服务每一项都需要App来继承实现AbstractThreadedSyncAdapter,用于该项的同步。
这里写图片描述

简单的演示

如何添加登录入口

第一步:实现AbstractAccountAuthenticator

在res/xml下添加一个xml,用于定义account-authenticator的以下属性:
sample_authenticator.xml

<account-authenticator
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:accountType="com.android.test" 
    android:icon="@drawable/ic_account_icon"
    android:smallIcon="@drawable/ic_account_icon"
    android:label="@string/account_title"/>

accountType -> 自定义的一个串,一般为包名
icon -> 图标
smallIcon -> 小图标,可能用于显示在状态栏等空间较小的地方
label -> 显示的账户名

接下来实现一个实现一个AbstractAccountAuthenticator,重点是实现addAccount方法的行为,现在先忽略具体实现。


public class TestAuthenticator extends AbstractAccountAuthenticator {
   

    Context mContext;
    AccountManager mManager;

    public TestAuthenticator(Context context) {
        super(context);
        mContext = context;
        mManager = AccountManager.get(context);
    }

    @Override
    public Bundle editProperties(AccountAuthenticatorResponse accountAuthenticatorResponse, String s) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Bundle addAccount(AccountAuthenticatorResponse accountAuthenticatorResponse, String s, String s1, String[] strings, Bundle bundle) throws NetworkErrorException {
        //这里可以返回包含Login界面Intent的Bunble,在点击添加这个账户后就能进入我们自定义的登录界面
        return null;
    }

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

    @Override
    public Bundle getAuthToken(AccountAuthenticatorResponse accountAuthenticatorResponse, Account account, String s, Bundle bundle) throws NetworkErrorException {
        return null;
    }

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

    @Override
    public Bundle updateCredentials(AccountAuthenticatorResponse accountAuthenticatorResponse, Account account, String s, Bundle bundle) throws NetworkErrorException {
        return null;
    }

    @Override
    public Bundle hasFeatures(AccountAuthenticatorResponse accountAuthenticatorResponse, Account account, String[] strings) throws NetworkErrorException {
        return null;
    }
}

第二步:实现Service和声明权限

实现一个Service,AccountManagerService需要通过Service来获取Authenticator中的的Binder,通过Binder回调来获取到我们自定义的登录行为。
在onBind中,我们需要返回TestAuthenticator中的IBinder:


public class TestAuthenticateService extends Service {
   
    TestAuthenticator mAuthenticator;

    @Override
    public void onCreate() {
        super.onCreate();
        mAuthenticator = new TestAuthenticator(this.getApplicationContext());
    }

    @Override
    public IBinder onBind(Intent intent) {
        //限制了只有在AccountManagerService绑定service
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Android期末作业app是一个为学生提供帮助和便利的应用程序。通过这个app,学生可以方便地查阅课程信息、教学资料和作业要求等学习相关的内容。 这个app的功能包括以下几个方面: 1. 课程信息管理:学生可以在app添加、编辑和查看自己的课程信息,包括课程名称、教师姓名、上课时间、地点等。这样,学生可以方便地管理自己的课程表,并且及时了解课程的变化和调整。 2. 教学资料下载:学生可以在app下载教师上传的课程资料,例如讲义、课件和录音等。这样,学生无需去云盘或邮箱下载,节省了时间和精力。 3. 作业管理:学生可以在app查看和提交作业。教师可以在app发布作业要求和截止时间,并提供作业提交的方式,例如在线提交或离线递交。学生可以方便地查看自己的作业进度和完成情况。 4. 成绩查询:学生可以在app查询自己的考试成绩和作业成绩。这样,学生可以及时了解自己的学习情况,及时调整学习方法和策略。 此外,这个app还可以提供其他一些辅助功能,例如考试倒计时、学习提醒和学习资源推荐等。希望这个app能够为学生们提供更好的学习体验和便利,提高学生的学习效率和成绩。 ### 回答2: Android期末作业App是一个用于学生提交和教师批改作业的应用程序。该App旨在提供一个方便快捷的平台,使学生能够提交自己的作业,并从教师获得及时的反馈。 首先,学生可以在该App上创建自己的账户,并选择所属的课程。一旦选择了课程,学生可以浏览已经发布的作业任务,并通过App将自己的作业提交给教师。 教师端的功能主要包括浏览学生提交的作业和进行批改。一旦学生提交作业,教师可以在App上查看作业的详细信息。教师可以为每项作业打分,并提供文字反馈和建议。这些评分和反馈将会自动发送到学生的账户。 在学生和教师都能够及时查看作业提交和反馈的情况下,这个App提供了更高效和方便的作业管理方式。学生可以通过App快速提交作业,而教师也能够更好地跟踪学生的学习进展。 此外,该App还提供一些额外的功能,如提醒学生截止日期和作业任务的通知。这些功能有助于提高时间管理和作业完成的效率。 总之,Android期末作业App是一个方便学生和教师进行作业管理和交流的工具。它不仅提供了便捷的作业提交和批改功能,还能帮助学生提高学习效率和教师更好地跟踪学生进展。 ### 回答3: Android期末作业App是一个为学生设计的应用程序,旨在帮助他们更好地完成和管理期末作业。这个App具有以下功能: 1. 作业提醒:用户可以在App设置作业的截止日期和提醒时间。一旦截止日期快要到了,App会自动发送通知提醒用户。这可以帮助学生合理安排时间,避免遗忘作业。 2. 作业分类:App可以根据科目、日期或重要性等自定义标签对作业进行分类和排序。这样学生可以根据自己的需求,快速找到应该完成的作业,提高效率。 3. 作业进度跟踪:App会记录每个作业的完成情况。学生可以标记已完成的作业,这样他们可以清楚地了解自己的进度,并更好地掌握还有多少作业需要完成。 4. 附件管理:App允许用户上传和管理与作业相关的附件,如课件、参考资料等。这样学生就不再需要纸质材料,可以随时随地查看和使用这些附件。 5. 学习统计:App会记录学生的作业完成情况,并生成学习统计报告。通过分析报告,学生可以了解自己的学习习惯以及哪些科目需要更多的关注和努力。 总之,Android期末作业App为学生提供了一个方便、高效地管理和完成作业的工具,帮助他们在期末考试前更好地准备和组织自己的学习。它能够提高学生的时间管理能力和学习效率,为学生的学业发展提供有力的支持。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值