Android 账户转账 API:从哪里获取 AccountTransferClient.sendData(accountType, transferData) 的转账数据?

Android Account Transfer API: Where to get transferData for AccountTransferClient.sendData(accountType, transferData)?

我正在尝试实施 Android 帐户转移 API,它基本上可以让您将应用程序的帐户从旧的 phone 转移到新的 phone,这样用户当他们在新 phone.

上使用您的应用程序时,无需再次登录

但是我觉得文档缺少信息。 Account Transfer API

当我调用 AccountTransferClient.sendData(accountType, transferData) 将帐户转移到新的 phone 时,它没有告诉我从哪里得到 transferData。我试着查看 AccountTransferClient docs 以获取更多信息,但它也没有说明什么。

谢谢!

找到示例应用程序 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"))

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