问题描述
我正在尝试实现Android帐户转移API,该API基本上可以让您将应用程序的帐户从旧手机转移到新手机,以便用户在新手机上使用您的应用程序时无需再次登录。
但是我觉得文档缺少信息。 Account Transfer API
当我致电 'aliases' => [
'App' => Illuminate\Support\Facades\App::class,'Artisan' => Illuminate\Support\Facades\Artisan::class,//'Auth' => Illuminate\Support\Facades\Auth::class,'Auth' => Illuminate\Support\Facades\CustomAuth::class,
将帐户转移到新手机时,它没有告诉我我从何处获得AccountTransferClient.sendData(accountType,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"))
无论如何,强烈推荐示例应用程序。文档不够清晰!