2017-01-14 16 views
-1

Я хочу «упаковать» два приложения в один файл APK для Android. Требования:Два приложения для Android в одном файле

  • Когда я устанавливаю APK-файл, он устанавливается для отдельных приложений.
  • Если я удалю приложение, другое приложение все равно останется установленным.

Могу ли я это сделать так?

+0

попробуйте это, это может помочь вам [http://stackoverflow.com/questions/10682576/one-apk-file-that-installs-two-apps] – knownUnknown

+0

Возможный дубликат [Один файл .apk, устанавливающий два приложения] (http://stackoverflow.com/questions/10682576/one-apk-file-that-installs-two-apps) –

ответ

0

Сначала загрузите те приложения, которые вы хотите установить в Dropbox (только). Теперь получите ссылки этих файлов APK и в ссылке замените dropbox.com/..... с помощью d.dropboxusercontent.com/...

Теперь сделайте приложение и поместите нижеприведенный код в поле «onCreate», или где-то,

String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"; 
    String fileName = "AppName.apk"; 
    destination += FileName; 
    final Uri uri = Uri.parse("file://" + destination); 

    String URL = "d.dropboxusercontent.com/..............."; 

    DownloadManager.Request request = new DownloadManager.Request(Uri.parse(URL)); 
      request.setDescription(Main.this.getString(R.string.notification_description)); 
      request.setTitle(Main.this.getString(R.string.app_name)); 

      // Set destination 
      request.setDestinationUri(uri); 

      // Get download service and enqueue file 
      final DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 
      final long downloadId = manager.enqueue(request); 

      // Set BroadcastReceiver to install app when .apk is downloaded 
      BroadcastReceiver onComplete = new BroadcastReceiver() { 
       public void onReceive(Context ctxt, Intent intent) { 
        Intent install = new Intent(Intent.ACTION_VIEW); 
        install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        install.setDataAndType(uri, 
          manager.getMimeTypeForDownloadedFile(downloadId)); 
        startActivity(install); 

        unregisterReceiver(this); 
        finish(); 
       } 
      }; 

      // Register receiver for when .apk download is complete 
      registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); 

Если вы хотите установить несколько приложений, вы можете применить этот код несколько раз, изменив имена переменных.

Прокомментируйте, если это сработало.

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

  • Нет связанных вопросов^_^