Проблема с сохранением файла на Motorola Droid, Android 2.1? - PullRequest
1 голос
/ 23 апреля 2010

Двое из моих пользователей сообщили о проблеме с моим приложением для Android, OftSeen Gestures. Оба они используют Motorola Droid. Приложение сохраняет текстовый файл, который представляет собой список имен жестов и телефонных номеров, обе строки. Сохраняет файл в личную область данных. Я не знаю, что именно этот код не работает, но они сообщают, что назначенные номера исчезают после выхода телефона из спящего режима. Поскольку файл перечитывается в OnCreate каждый раз, я предполагаю, что файл не существует по возвращении.

Как только я получу Droid, я отлажу его, но пока вы можете увидеть причину сбоя операции сохранения на Droid (другие пользователи не сообщили об этом)?

    OutputStreamWriter out = new OutputStreamWriter(AppGlobal.getContext().openFileOutput(MAPPINGS_FILE_NAME, 0));

    for (String key : mMap.keySet()) {
        String number = mMap.get(key).number;
        out.write(String.format("%s,%s\n", key, number == null ? "" : number));
    }
    out.close();

AppGlobal.getContext возвращает контекст приложения, и MAPPINGS_FILE_NAME преобразуется в "gest_mappings.txt".

Как я уже сказал, я не знаю, в чем проблема. Это может быть связано с управлением состоянием внутри приложения. Если у кого-нибудь есть Droid, может, они могли бы скачать приложение с Маркета и протестировать его для меня? Обратите внимание, что это подлинный запрос о помощи, а не попытка увеличить мои загрузки.

1 Ответ

0 голосов
/ 29 июня 2011

Это было диагностировано как вызванное расширенными наборами символов, приводящими к неправильной интерпретации разрывов строк, и было решено путем явной записи файла с использованием UTF8. См. Как читать и записывать UTF-8 на диск на Android? 1

...