永久保存电报状态

时间:2018-02-25 18:01:00

标签: java android telegram

我想存储自定义电报消息传递应用程序的状态,这样用户就不必重新注册(请求authcode等)。

参考Telegram API : How keep ApiState to save signIn state我目前正在实施以下内容:

...
apiState = loadState(apiStateFile + ".tmp");
...
private MemoryApiState loadState(String fileName) {
    try {
        FileInputStream fileIn = new FileInputStream(fileName);
        ObjectInputStream in = new ObjectInputStream(fileIn);
        MemoryApiState mas = (MemoryApiState) in.readObject();
        in.close();
        fileIn.close();

        return mas;
    } catch (IOException i) {
        return null;
    } catch (ClassNotFoundException c) {
        c.printStackTrace();
    }
    return null;
}

并且每次状态更改我都会调用

private void saveState(String fileName, MemoryApiState mas) {

    try {
        FileOutputStream fileOut = new FileOutputStream(fileName);
        ObjectOutputStream out = new ObjectOutputStream(fileOut);
        out.writeObject(mas);
        out.close();
        fileOut.close();
    } catch (IOException i) {
        i.printStackTrace();
    }
}

然而,即使apiState不是null并且它显然与Telegrams'相关联。 server(我看到控制台上的所有输出,来自服务器),客户端ID例如是0.这意味着,不会存储注册。

我看到文件系统中写入的文件带有序列化对象,如果保存或加载对象,它不会给我任何输出。

MemoryApiState的实现来自Telegram:https://github.com/rubenlagus/TelegramApi/blob/51713e9b6eb9e0ae0d4bbbe3d4deffff9b7f01e4/src/main/java/org/telegram/bot/kernel/engine/MemoryApiState.java

0 个答案:

没有答案