android使用AccountManager添加帐户,找不到处理Intent的活动{act = android.settings.ADD_ACCOUNT_SETTINGS(有附加内容)}

时间:2016-04-17 19:49:57

标签: android android-intent accountmanager

在某些手机中(确切地说是#34; oneplus" android v6.0.1)。当我尝试使用似乎是"右边的#34;来调用帐户添加屏幕时,我收到No Activity found to handle Intent { act=android.settings.ADD_ACCOUNT_SETTINGS (has extras) }错误方式。

 Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT);
 intent.putExtra(Settings.EXTRA_ACCOUNT_TYPES, new String[]{Constants.ACCOUNT_TYPE});
 startActivity(intent);

我似乎可以添加

<intent-filter>
       <action android:name="android.settings.ADD_ACCOUNT_SETTINGS" />
</intent-filter>

到我的登录活动,但我应该这样做吗?如果是这样的话,为什么它会在大多数手机上工作,但会崩溃。我希望我的帐户意图能够通过手机的设置屏幕尝试创建帐户,这似乎是一个不错的捷径。

2 个答案:

答案 0 :(得分:1)

我终于找到了问题。显然,我所说的电话是在cyanogen上运行的,无论出于何种原因,其他Android 6手机(和模拟器)都不需要GET_ACCOUNT权限来申请我自己的应用程序帐户,这款手机就是这样。

错误没有说明缺少权限但是在使用运行时请求获取GET_ACCOUNT后,它按预期运行。

答案 1 :(得分:0)

在Android中设置自定义帐户需要

Four things。实现Abstractaccountauthenticator以公开添加帐户的方法等。将AccountAuthenticatorActivity扩展为交易的视图部分。在android清单中对xml资源文件的引用,该文件本身引用图标,字符串标签和xml资源文件。

现在,我怀疑您使用的是预先存在的帐户类型,也许谷歌可以在大多数手机上使用。一切android都有gmail或googleplay商店。一些谷歌应用程序。所以最大的问题是你的代码中Constants.ACCOUNT_TYPE的价值是什么?你想制作自己的自定义帐户类型吗?