Размещение файла .apk на собственном сайте - PullRequest
2 голосов
/ 02 июня 2011

Я получил требование разместить мой файл .apk на одном общедоступном сайте, кроме Android Market или любых других магазинов приложений. На Android Market после регистрации на рынке, загруженный .apk будет автоматически установлен на мобильный без каких-либо ручных действий. Поэтому я хочу создать один URL-адрес и разместить в нем свой файл .apk, а затем загрузить этот файл .apk на мобильное устройство Android и установить его автоматически.

Как я могу это сделать ... Пожалуйста, поделитесь, если какой-либо код или ссылки там обновляют это.

Ответы [ 2 ]

5 голосов
/ 02 июня 2011

Если на устройстве Android установлен флажок «Настройки-> Приложения-> Неизвестные источники», Android разрешит установку .apk. Если это не проверено - у вас ничего не получится.

Предполагается, что флажок проверен, и вы загрузили .apk файл. Вы можете запустить следующий код для запуска установки:

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(apkFileName));
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);
2 голосов
/ 02 июня 2011
{
        String url = "http://www.server.com/yourapp.apk";
        String PATH = Environment.getExternalStorageDirectory() + "/download/";
        File file = new File(PATH);
        file.mkdirs();
        File outputFile = new File(file, "yourapp.apk");
        downloadFile(url, outputFile);
        installApp(context);
}



private static void downloadFile(String url, File outputFile) {
    try {
        URL u = new URL(url);
        URLConnection conn = u.openConnection();
        int contentLength = conn.getContentLength();

        DataInputStream stream = new DataInputStream(u.openStream());

        byte[] buffer = new byte[contentLength];
        stream.readFully(buffer);
        stream.close();

        DataOutputStream fos = new DataOutputStream(new FileOutputStream(outputFile));
        fos.write(buffer);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        Log.e("FileNotFoundException",e+"");
        return; 
    } catch (IOException e) {
        Log.e("IOException",e+"");
        return; 
    }
}


private static void installApp(Context mycontext) {
    Intent installer = new Intent();
    installer.setAction(android.content.Intent.ACTION_VIEW);
    String PATH = "file://" + Environment.getExternalStorageDirectory() + "/download/yourapp.apk";
    installer.setDataAndType(Uri.parse(PATH), "application/vnd.android.package-archive");
    mycontext.startActivity(installer);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...