ответ

0

Да, это возможно, если вы сохраняете данные приложения во внешнем хранилище своего устройства, потому что эти данные не удаляются, даже если ваше приложение удалено.

После переустановки приложения вы можете прочитать данные файла, чтобы определить, было ли это приложение ранее установленным или оно является новой версией, если файл не существует.

Примечание: - Данные в внешнем каталоге будут видны пользователю, поэтому может быть случай, когда пользователь может удалить данные из файлового менеджера.

+0

создать скрытую папку или файл. Пользователь не увидит его, если он не захочет отображать скрытые папки. Все, что вам нужно сделать, это добавить '.' за папкой или именем файла, например «.MyAppFile» –

+0

Вот в чем проблема. Я не хочу сохранять файл на внешнем устройстве, потому что я не хочу делиться этими данными с пользователем. Это чрезвычайно личные данные, и, поскольку я сказал вам, что это очень важно, я также не позволяю пользователю удалять этот файл. –

+0

Итак, возможно, вы можете отправить идентификатор устройства во время запуска вашего приложения. Сервер будет иметь идентификатор устройства для всех устройств, на которых было установлено ваше приложение. Проверяя это, вы можете загрузить эти данные из хранилища серверов во внутреннем хранилище своего устройства. –

0

Чтобы сохранить эти данные, вы можете использовать общие настройки. Создайте общие ссылки с помощью MODE_WORLD_READABLE. Вы можете установить флаг как истинный, когда приложение запущено, и может извлечь это значение для каждой установки, чтобы узнать, существует ли это значение. Что-то, как показано ниже:

Когда приложение запускается (Запишите этот код в код запуска для вашего приложения-который запускается первым):

SharedPreferences sharedpreferences = context.getSharedPreferences("test", Context.MODE_WORLD_READABLE); 
       SharedPreferences.Editor editor = sharedpreferences.edit(); 
       editor.putString("app_already_installed", "true"); 
       editor.commit(); 

Проверить, был ли уже установлено приложение (Напишите это, где вы хотите проверить на более ранние установки):

SharedPreferences sharedpreferences = context.getSharedPreferences("test", Context.MODE_WORLD_READABLE); 
String is_app_already_installed= sharedpreferences.getString("app_already_installed", "false"); 

if(is_app_already_installed.equals("true"){ 
//do-something 
} 
else{ 
//do-something 
} 
Смежные вопросы