如何在Java / Kotlin客户端库中为Google上的操作将一些数据保存到userStorage中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Java / Kotlin客户端库中为Google上的操作将一些数据保存到userStorage中相关的知识,希望对你有一定的参考价值。

我想在Kotlin的userStorage中保存一些信息

javascript中,我做了以下操作

exports.saveFloor = (conv, floor) => {
conv.user.storage.floor = floor;

}

这是客户library

答案

来自Name Psychic

@ForIntent("request_name_permission")
public ActionResponse requestNamePermission(ActionRequest request) {
  ResponseBuilder response = getResponseBuilder(request);

  String requestedPermission = ConstantsKt.PERMISSION_NAME;

  response.getConversationData().put(DATA_KEY_REQUESTED_PERMISSION, requestedPermission);

  String storageKey = STORAGE_KEY_NAME;

  if (!request.getUserStorage().containsKey(storageKey)) {
    Permission permission =
        new Permission()
          .setContext(formatResponse("permission_reason"))
          .setPermissions(new String[] {requestedPermission});
    response.add("PLACEHOLDER_FOR_PERMISSION");
    response.add(permission);
  } else {
    String name = (String) request.getUserStorage().get(storageKey);
    response.add(formatResponse("say_name", name));
    response.endConversation();
  }

  return response.build();
}
另一答案

我想我想要的片段是

 Map<String, Object> storage = response.getUserStorage();

String requestedPermission =
    (String) request.getConversationData().get(DATA_KEY_REQUESTED_PERMISSION);
if (requestedPermission.equals(ConstantsKt.PERMISSION_NAME)) {
  String name = request.getUser().getProfile().getDisplayName();
  storage.put(STORAGE_KEY_NAME, name);
  response.add(formatResponse("say_name", name));
  response.endConversation();
  return response.build();
} 
if (requestedPermission.equals(ConstantsKt.PERMISSION_DEVICE_COARSE_LOCATION)) {
  String location = request.getDevice().getLocation().getCity();
  storage.put(STORAGE_KEY_LOCATION, location);
  showLocationOnScreen(request, response);
  return response.build();
} 

我的javascript代码相当于Kotlin

fun saveFloor(request: ActionRequest, floor: String) {
    val response = getResponseBuilder(request)
    val storage = response.userStorage as MutableMap

    storage["floor"] = floor
}

欢呼Nick指出我正确的方向

以上是关于如何在Java / Kotlin客户端库中为Google上的操作将一些数据保存到userStorage中的主要内容,如果未能解决你的问题,请参考以下文章

标准 Kotlin 库中都有哪些 Java 8 Stream.collect 等效项?

如何在 Android Studio 中为 Kotlin Multiplatform 配置 iOS 应用程序?

如何在 Kotlin 中为 Android 的 RecyclerView 适配器初始化 viewHolder

Kotlin-你还没有学习?

如何在 PHP 的 GD 库中为文本添加发光或阴影? [关闭]

如何在 MIMChart 库中为图形使用固定的颜色集?建议是可观的