2015-06-17 4 views
3

Что я хочу сделать, может быть, трудно объяснить или понять, поэтому я сделал быстрый рисунок. enter image description hereГлавное приложение загрузить еще одно приложение, а затем использовать его

Прежде всего, у нас есть 2 приложения для Android. Дисплей «Hello World» и B имеет кнопку, которая (может быть) может загрузить приложение (в Интернете или на локальном компьютере).

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

Я не знаю, если это вообще возможно:

  1. Чтобы скачать приложение и установить его программно
  2. Создание «полиморфной» Android приложение, как это.

Если я должен суммировать то, что я хочу с одним предложением было бы:
Modify В приложении с приложением, которое B просто скачать и установить.

+0

Является ли "A" приложение или расширение/плагин? Кстати, как я могу придумать, чтобы эта работа с * приложением * заключалась в том, чтобы просто обнаружить ее присутствие и активировать новые вещи в «В», как и приложение «pro to unlock feature». – shkschneider

+0

A - приложение, я имею в виду, что B должен загрузить SDK, а затем установить его. Затем B должен «морфировать» с помощью A comportement –

ответ

1

Я уверен, что вы можете скачать эти SDK (видимо, как APK здесь) и использовать Fragment s или любой код для инъекций или что-то в этом роде.

Вероятно, нужно использовать отражение, хотя, потому что основное приложение «B» не будет разрешать классы, находящиеся в «A».

Может быть, ваш «А» модулей должны разоблачать методы/переменные/фрагменты он имеет, как во встроенном JSON описательного актива или что-то, что «B» может разобрать и знать, что с ними делать.

Пункт, очевидно, заключается в перемещении всего кода «А» от «В», что означает гибкость для «В».

+0

. Я думал так же, но я действительно не знаю, как это сделать. Я думаю, что A должен содержать некоторый сохраненный код или idk, что –

+0

Конечно, у него будет код. Если вы хотите что-то более совершенное, чем обычные действия, я вижу только мой вариант, который действительно включает в себя немного работы: давайте, вы вводите приложение в другое :) – shkschneider

+0

Да: p Это тема для моей стажировки, я все еще немного нового с Android, я должен много работать^-^ –

0

Чтобы скачать приложение и установить его программно:

Да, вы можете сделать это программно, но пользователю будет предложено установить приложение (например, принимая разрешения новое приложение будет использовать).

String filename = "yourAppName.apk"; 
    //trivial downloading asynctask 
    DownloadApp appd = new DownloadApp(context, val, filename); 
    if (appd.downnAndsave()) { 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     intent.setDataAndType(Uri.fromFile(new File(Environment 
         .getExternalStorageDirectory() 
         + "/download/" 
         + filename)), 
       "application/vnd.android.package-archive"); 
     context.startActivity(intent); 
    } 

Создать "полиморфный" Android приложения так:

//if the download is complete then have a flag 
//use this to run another application from your application B 
    Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.A"); 
    startActivity(intent); 
+0

Могу ли я загрузить приложение с сервера? И с полиморфоном, я имею в виду, B должен измениться с помощью A-сорта, но все равно увидеть компромисс B. С вашим решением A полностью заменит B нет? –

+0

Нет, он не заменит B, вы использовали приложение Teamviewer Quicksupport в android? У него есть аналогичная функция, которую вы задали. Он загружает другое приложение, но он не может заменить старый, поскольку вы не можете удалить приложение с помощью другого –

+0

. Вы все еще можете видеть [это] (http://stackoverflow.com/questions/12771444/how-to-self-uninstall-an- app) –

Смежные вопросы