代码之家  ›  专栏  ›  技术社区  ›  mco

Android帐户转移API:在哪里获取AccountTransferClient.sendData(accountType,transferData)的transferData?

  •  0
  • mco  · 技术社区  · 4 年前

    我正在尝试实现Android帐户转移API,它基本上可以让你将应用程序的帐户从旧手机转移到新手机,这样用户在新手机上使用你的应用程序时就不必再次登录。

    然而,我觉得文档缺少信息。 Account Transfer API

    当我打电话的时候 AccountTransferClient.sendData(accountType, transferData) 将账户转移到新手机,它不会告诉我在哪里 transferData 从。我试着看 AccountTransferClient docs 想了解更多信息,但也没什么好说的。

    谢谢!

    0 回复  |  直到 4 年前
        1
  •  0
  •   mco    4 年前

    找到了示例应用程序 https://github.com/android/identity-samples/tree/main/AccountTransferApi 显然,他们所做的是将帐户信息放入JSON obj中,然后将JSON obj转换为字节数组(即transferData)。

    val jsonArray = JSONArray()
    for (account in accounts) {
        val accountJsonObject = JSONObject()
        try {
            accountJsonObject.put(KEY_ACCOUNT_NAME, account.name)
            val password = accountManager.getPassword(account)
            accountJsonObject.put(KEY_ACCOUNT_PASSWORD, password)
        } catch (e: JSONException) {
            Log.e(TAG, "Error while creating bytes for transfer", e)
            return null
        }
        jsonArray.put(accountJsonObject)
    }
    val jsonObject = JSONObject()
    try {
        jsonObject.put(KEY_ACCOUNT_ARRAY, jsonArray)
    } catch (e: JSONException) {
        Log.e(TAG, "Error", e)
        return null
    }
    val transferData = jsonObject.toString().toByteArray(Charset.forName("UTF-8"))
    

    无论如何,强烈推荐示例应用程序。文档不够清晰!