Установите приложение GooglePlay из NFC
Работая с Lollipop, у меня естьУстройство-владелец приложение, которое установлено с NFC во время предоставления.
Теперь мне нужно обрабатывать автоматические обновления для моего приложения, начиная с Google Play и полагаясь на стандартную систему обновлений Android-приложений ...
До сих пор я могу представить 2 способа сделать это, но не знаю, как справиться с любым из них:
в моем NFC установить константуУСТРОЙСТВО ДЛЯ ПРЕДОСТАВЛЕНИЯ ДОПОЛНИТЕЛЬНЫХ ПАКЕТОВ СКАЧАТЬ МЕСТО установить приложение прямо из Play Store вместо URL на моем собственном сервере разработки.Однако эта константа должна обрабатывать URL-адрес apk-файла, и я не нашел никакого официального способа установить apk прямо из Play Store? (поскольку это будет производственное приложение в будущем, я не интересуюсь взломами)продолжайте устанавливать apk с сервера dev, но затем позвольте приложению обновиться, установив своего младшего брата в магазине Play Store с тем же именем пакета.
Другими словами: возможно ли установить v1 apk из пользовательского местоположения, затем поместить v2 в PlayStore ... и позволить волшебству сбыться?
Я был бы рад услышать, если бы кто-нибудь мог поделиться опытом о таких процедурах. Спасибо за прочтение!
РЕДАКТИРОВАТЬ после предложения @Stephan Branczyk я могу провести еще несколько тестов, вот что я сделал и результаты:1 - При подготовке NFC я заменил apk url на snep: //my.app.packagename без удачи; это просто дает ошибку без особых объяснений.
2 - я заменил этот URL на такую ссылку PlayStore:https://play.google.com/store/apps/details?id=my.app.packagename но это дает ошибку контрольной суммы, использую ли я локально вычисленную контрольную сумму или контрольную сумму, указанную в подробностях apk GooglePlay Это выглядит не так далеко от цели, но я не мог заставить его работать.
3 - Наконец, я вернулся к своему первому решению, самодостаточному apk версии 1 ... но на этот раз я попытался установить в PlayStore более новую версию 2 приложения с точно таким же именем пакета ... Это привело меня к странные вещи:
Сначала мое приложение не появлялось нигде в локальном приложении PlayStore, но когда я искал его в Google Play, оно обнаружилось с зеленым значком «установлено» и предложило мне сделать обновление ... Я тоже.Затем, после этого первого обновления вручную, приложение вышло в версии 2, хорошо и качественно: оно отображается в моем PlayStore.Оптимистично, я загрузил v3 приложения ... просто чтобы посмотреть, будет ли мой PlayStore автоматически обновлять мое приложение (как и для всех остальных), но, к сожалению, не повезло: даже если мое приложение все еще указано в playstore, и предлагая кнопку «обновить» ... она никогда не обновляется сама по себе; Мне все еще нужно нажать на нее вручную.Разве это не странное поведение? Если у кого-то есть идеи по этому поводу, мне действительно нужно было бы полагаться на функциональность Play Store, но пока не повезло, и я не могу поверить, что дистрибутив приложения для владельцев устройств несовместим с PlayStore?
На всякий случай, к вашему сведению, это вид кода обеспечения, который я использую:
try {
Properties p = new Properties();
p.setProperty(
DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,
"my.app.packagename");
p.setProperty(
DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION,
"http://www.example.com/myDeviceOwnerApp.apk");
p.setProperty(
DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM,
"U55o3fO0cXQtUoQCbQEO9c_gKrs");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream out = new ObjectOutputStream(bos);
p.store(out, "");
final byte[] bytes = bos.toByteArray();
NdefMessage msg = new NdefMessage(NdefRecord.createMime(
DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, bytes));
return msg;
} catch (Exception e) {
throw new RuntimeException(e);
}