Возраст устройства Android - PullRequest
       0

Возраст устройства Android

1 голос
/ 11 февраля 2012

Можно ли запросить возраст устройства андроид?Я хочу знать, как долго пользователь владеет своим устройством.Срок службы батареи может быть хорошим показателем, но я не могу найти подходящий API.Оптимальным было бы что-то временное метка первой загрузки устройства.Есть идеи?

Ответы [ 3 ]

1 голос
/ 25 декабря 2016

Не существует надежного способа узнать возраст устройства, но да, каким-то образом мы можем определить возраст.

Устройства Android комплектуются некоторыми предустановленными приложениями (приложениями Sytem), и когда пользователь владеет им,он устанавливает другие приложения (пользовательские приложения).Мы можем узнать дату самого раннего установленного пользовательского приложения и можем предсказать возраст устройства.

* Если устройство было перезагружено после использования, было бы трудно определить возраст устройства.

// @return дата установки самого раннего приложения.

private static String getOldestAppsAge(Context context) {
    long appsAge = 0;
    try {
        appsAge = System.currentTimeMillis();
        PackageManager pkgManager = context.getPackageManager();
        List<ApplicationInfo> lsApp = pkgManager.getInstalledApplications(0);
        for (ApplicationInfo localApplicationInfo : lsApp) {
            String pkgName = localApplicationInfo.packageName;
            if ((localApplicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
                PackageInfo info = pkgManager.getPackageInfo(pkgName, 0);
                long firstInstallTime = info.firstInstallTime;
                if (firstInstallTime < appsAge && firstInstallTime > sGINGER_RELEASE_DATE) {
                    appsAge = info.firstInstallTime;
                }
            }
        }
    } catch (PackageManager.NameNotFoundException ex) {
        ex.printStackTrace();
    }
    return DateUtils.convertIntoDesiredDateFormat(appsAge);
}
  • Некоторые устройства Android возвращают время эпохи (1970), поэтому мы должны использовать некоторое условие проверки: if (firstInstallTime> sGINGER_RELEASE_DATE)
0 голосов
/ 06 января 2014

Это интересный вопрос.Там нет API, чтобы сказать, когда устройство было впервые приобретено - но вы можете искать прокси.

  • Прочтите входящие SMS-сообщения - какая самая ранняя дата отправки или получения сообщения.(Конечно, они могли удалить свои старые сообщения.)
  • Аналогичным образом, прочитайте журнал вызовов и посмотрите, когда они впервые получили или сделали звонок.
  • Время работы также может быть запрошено - ноЯ предполагаю, что большинство людей выключают свое устройство или иным образом перезагружают его.
  • Глядя в галерею, вы можете запросить данные EXIF ​​и посмотреть, когда была сделана самая ранняя фотография.
  • Имея доступ кфайловую систему, вы можете посмотреть, когда были созданы определенные файлы.

Ни один из них не идеален, но их можно использовать, чтобы установить некоторые ограничения, когда пользователь впервые получил свое устройство.

0 голосов
/ 11 февраля 2012

Есть несколько трудностей, которые вам, возможно, придется рассмотреть здесь:

1) Большинство устройств Android имеют (легко) сменные батареи. У меня, например, несколько батарей, которые я чередую, когда использую свой телефон.

2) Даже если временные метки были собраны при загрузке, они, вероятно, будут удалены, если владелец телефона протерет устройство для установки различных ПЗУ.

Я бы ожидал, что решение jcollum попытаться определить модель телефона, или взглянуть на какую-то часть его оборудования и определить приблизительную дату выпуска модели, может быть вашим ближайшим решением. Я сомневаюсь, что вы найдете много точности в определении возраста фактического устройства. Если есть, пожалуйста, поправьте меня - мне сейчас тоже интересно!

...