В Android вы не можете запускать сетевые действия в главном потоке - вам нужно запускать их в другом потоке, например:
Thread yourThread = new Thread(new Runnable() {
@Override
public void run() {
try {
//Put your code in here
} catch (Exception e) {
e.printStackTrace();
}
}
});
yourThread .start();
Для автоматизации установки пакета MSI можно использовать/I опцию, как это:
msiexec.exe /qn /i mypackage.msi
Имеют в виду, что необходимо указать свойства, которые пакет MSI ожидает, что пользователь укажет через UI, и для которого он не имеет значения по умолчанию.
можно использовать инструмент Orca , чтобы видеть список свойств и возиться с условиями MSI, и т.д. И к установленным значениям для свойств, можно просто указать его в командной строке; например, установить свойство ISDEBUG:
msiexec.exe /qn /i mypackage.msi ISDEBUG=1
примечание Стороны: Для автоматизации удаления используйте/X опцию с пакетом или кодом продукта:
msiexec.exe /qn /x mypackage.msi
или это (где необходимо изменить CLSID с кодом продукта):
msiexec.exe /qn /x {B741B8A3-8DCB-44E0-B06F-2A11F56572DB}
Если Вы направляетесь в один из своих пакетов MSI в командной строке и выполняете a:
Myproduct.MSI /?
экран А откроется со всеми подробностями параметров командной строки, которые можно передать MSI. Я уверен, что таким образом Вы могли установить свое приложение через командную строку и таким образом автоматизировать его.