Вопрос об обновлении! - PullRequest
0 голосов
/ 19 апреля 2010

Вот проблема, с которой я сталкиваюсь: пытаясь сделать свое собственное обновление приложения, я загружаю обновление apk с веб-сервера на SD-карту, а затем запускаю установщик пакетов с путем загрузки (пока работает старое приложение) , Итак, после запуска установщика пакета, когда пользователь соглашается установить приложение, я получаю следующее сообщение «MyApp не может быть установлен на этом телефоне», и в logcat выводится следующее сообщение: Msgstr "Нет идентификатора пакета при получении значения для номера ресурса 0x00000000". Я не смог найти причину такого поведения, поэтому, если я что-то упускаю, пожалуйста, укажите мне!

try
 {
   BufferedInputStream getit = new BufferedInputStream(new URL("http://mywebserver:8080/myapk.apk").openStream());
   FileOutputStream saveit = new FileOutputStream(path);
   BufferedOutputStream bout = new BufferedOutputStream(saveit,1024);
   byte data[] = new byte[1024];
   int readed = getit.read(data,0,1024);
   while(readed != -1)
    {
        bout.write(data,0,readed);
        readed = getit.read(data,0,1024);
    }
    bout.close();
    getit.close();
    saveit.close();
}
catch(Exception e)
{
   e.printStackTrace
}

1 Ответ

0 голосов
/ 19 апреля 2010

Попробуйте использовать следующий пример intead версии «Установщик пакетов». Образец не объясняет, как загрузить файл с сервера. Предполагается, что он уже находится в байтовом массиве.

byte[] data = dataReadFromServer;

FileOutputStream outStream = openFileOutput("somename.apk", Context.MODE_WORLD_READABLE);
outStream.write(data);
Intent intent = new Intent();
String absolutePath = "file://" + getFilesDir().getAbsolutePath() + "/" +
"somename.apk"; 
intent.setAction(android.content.Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(absolutePath), "application/vnd.android.package-archive"); 
startActivity(intent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...