Обновление приложения Android Things через USB и установщик пакетов

#android #permissions #android-things

#Android #разрешения #android-вещи

Вопрос:

В связи с отключением консоли Android Things в 2022 году я хотел бы знать, пытался ли кто-нибудь из вас обновить приложение через USB.

Я безуспешно пытался:

Первая попытка:

 Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName()   ".provider", layoutPath), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
 

Результат:
Установщик пакетов не может установить приложение из-за MANAGE_UNKNOWN_APP_SOURCES. Я не могу изменить этот флаг в MANAGE_UNKNOWN_APP_SOURCES.

Вторая попытка:

 Log.e(TAG,layoutPath.getPath());
Runtime.getRuntime().exec("chmod 777 "   layoutPath.getPath());
Runtime.getRuntime().exec("pm install -r "   layoutPath.getPath());
 

Результат:

 Permission Denial: runInstallCreate from pm command asks to run as user -1 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
 

У вас есть идеи получше?

Ответ №1:

Вы можете устанавливать или обновлять приложения на своем устройстве вручную с помощью Android Debug Bridge (adb). Версии вашего приложения, установленные с помощью этого метода, будут переопределять любую существующую версию, включенную в заводской образ, если вы указали более высокую версию.

Для получения более подробной информации о подключении к вашему конкретному устройству с помощью ADB см. Руководства по оборудованию.

Комментарии:

1. Спасибо за ответ. Это хороший способ обновления приложения, но это невозможно, если устройство уже есть на рынке по всему миру.

2. Вероятно, лучше использовать следующую команду в процессе установки: adb shell appops set <mypackage> REQUEST_INSTALL_PACKAGES разрешить