У меня бесплатная игра, и я делаю платную версию. Бесплатная игра хранит целочисленный рекорд в общем файле настроек, который я создал в режиме MODE_WORLD_READABLE. Платная версия должна скопировать этот счет, если установлена бесплатная версия.
Код, который я использую для этого, выглядит следующим образом:
Context c = paidContext.createPackageContext("my.app.packagename", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences prefs = c.getSharedPreferences(SHARED_PREF_FILENAME, Context.MODE_WORLD_READABLE);
Первая строка создает контекст для бесплатного приложения, если оно существует (в противном случае вы получаете исключение). Вторая строка получает файл общих настроек. Затем я могу использовать prefs.getInt, чтобы получить высокий балл.
Проблема: это прекрасно работает в Android 1.5, 2.1, 2.3 и т. Д., Но не работает для меня в эмуляторе Android 3.0 или 3.1. Приведенный выше код выполняется, но getInt всегда возвращает значение по умолчанию.
Это ошибка? Особенность Сота? Есть ли какие-то разрешения для приложений, о которых я не знаю? Как я могу диагностировать это дальше?