【问题标题】:Android list of Accounts is emptyAndroid 帐户列表为空
【发布时间】:2019-06-30 00:30:38
【问题描述】:

我正在进行一个项目,我需要列出用户设备中的所有帐户(Gmail、Exchange 等)。

首先要做的事;我的代码 sn-p 在下面;

public class MainActivity extends AppCompatActivity {
    public static final int PERMS_REQUEST_CODE = 1;
    private static final String LOG_TAG = MainActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.GET_ACCOUNTS)) {
                ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.GET_ACCOUNTS}, PERMS_REQUEST_CODE);
            } else {
                ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.GET_ACCOUNTS}, PERMS_REQUEST_CODE);
            }
        } else {
            AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
            Account[] accounts = manager.getAccounts();
            Log.d(LOG_TAG, "Done! List of accounts: " + accounts.length);
        }
    }
}

它按预期显示在屏幕下方,我允许这样做;

但是,在下面一行中检索到的帐户列表是空的;

Account[] accounts = manager.getAccounts();

顺便说一句,我在设备上有一个帐户;

我错过了什么?

注意:我搜索了网络和this 之类的问题,但没有办法。他们指出“缺乏权限”,但我的应用程序有。

【问题讨论】:

  • 你是说,授予权限后,重启MainActivityelse块中的accounts数组为空?或者您是否也在 Activity 的其他地方调用它,例如在 onRequestPermissionsResult() 中?
  • @MikeM。是的,重点正是如此;在我授予权限并重新启动 MainActivity 后,else 块中的 accounts 数组为空。
  • 好的,只是确保我没听错。看看这里:stackoverflow.com/q/35050548.
  • 我检查了您提供的链接并被路由到一个奇怪的解决方案:将 Manifest.permission.READ_CONTACTS 同时添加到 Manifest 和运行时权限请求。谢谢。

标签: android accountmanager


【解决方案1】:

正如@MikeM. 的评论;将 Manifest.permission.READ_CONTACTS 添加到 Manifest 和运行时权限请求解决了这个问题。奇怪但工作......

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 2022-12-26
    • 2021-12-01
    相关资源
    最近更新 更多