Как установить APK автоматически, когда загрузка файла будет завершена (размещена на приватном сервере) - PullRequest
8 голосов
/ 16 сентября 2011

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

как программно установить файл apk

Вызов активности из APK в другом приложении для Android

Android установить apk программно

Установить APK программно на Android

http://www.anddev.org/viewtopic.php?p=23928

РЕДАКТИРОВАТЬ:

Я написал этот код в файле манифеста:

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <!-- <uses-permission android:name="android.permission.INSTALL_PACKAGES"/> -->
    <application android:icon="@drawable/biz_logo"
        android:permission="android.permission.WRITE_CONTACTS">
        <activity android:name="com.biz.mlm.Main">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="content" />
                <data android:scheme="file" />
                <data android:mimeType="application/vnd.android.package-archive" />
            </intent-filter>
        </activity>

Ответы [ 4 ]

11 голосов
/ 16 сентября 2011

Не возможно. Как указывают некоторые из этих ссылок, создание APK, который автоматически устанавливает себя и удаляет исходный установщик без дальнейшего вмешательства пользователя, называется вредоносным ПО.

Вы можете написать программу, которая будет загружать и устанавливать произвольные APK, если пользователь предоставит ему соответствующие разрешения, но я пока не вижу хорошей реализации или документации для этого. Обычно вы можете вызвать системный установщик по умолчанию, используя такой код:

File apkFile = new File({path to APK});
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
    startActivity(intent);
3 голосов
/ 08 мая 2013

Вы пытались добавить разрешение ниже?

<uses-permission
    android:name="android.permission.INSTALL_PACKAGES" />

Добавьте приведенный выше код в манифест (особенно, когда вы получаете исключение безопасности).

Вы можете сослаться на Установка приложений в автоматическом режиме с предоставленным разрешением INSTALL_PACKAGES

Надеюсь, это работает для вас.

2 голосов
/ 22 апреля 2013
Intent intent = new Intent(Intent.ACTION_VIEW);
File file = new File("/mnt/sdcard/myapkfile.apk");
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(intent);

Приведенный выше код установит myapkfile.apk.Вам просто нужно поместить этот код в onCreate () в Activity.

1 голос
/ 28 августа 2015

На самом деле это возможно, используйте BroadcastReceiver для прослушивания, когда пакет добавляется (PACKAGE_ADDED) в систему. Создайте класс BroadcastReceiver, сделайте следующий код:

public void onReceive(Context arg0, Intent arg1) {
    File downLoadApk = new File(Environment.getExternalStorageDirectory(),"New.apk");
        if (downLoadApk.exists()) {
            downLoadApk.delete();
        }

}
...