2010-11-12 1 views
0

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

Но, я не знаю, куда я должен положить файл apk игры? Я не знаю, как я могу вызвать игру apk?

Я нашел следующий код, который запускает любой apk из sdcard (я думаю).

String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk"; 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive"); 
startActivity(intent); 

Но, я планирую подготовить один APK (и игра будет помещена где-нибудь с такими res/raw).

ответ

2

есть кнопка будет в приложении, и когда пользователь нажимает на кнопку, внутренний АПК (игра с открытым исходным кодом) будет запущен.

Если вы имеете в виду, что будет запущено приложение (внутреннее APK), то вы не понимаете, как это работает. Поэтому позвольте мне объяснить: APK не похож на .EXE на систему Windows. Я имею в виду, вы не можете просто «запустить» APK.

APK - это пакет, который содержит приложение, и единственное, что вы можете с ним сделать, это установить его. Код, который вы публикуете выше, как представляется, вызывает установщик приложений Android, который будет делать это: установить приложение (не запускать его). Как вы можете видеть, необходимо, чтобы приложение находилось во внешнем хранилище (SD-карта), и это связано с тем, что установщик app не может напрямую получить доступ к вашему/res/raw.

Итак, вам нужно скопировать APK из res/raw в SDCard (Google - ваш друг), а затем использовать приведенный выше код. Опять же, это не выполнит приложение, оно просто установит его. После того, как он будет установлен, вы можете выполнить его из своего приложения, сделав что-то затишье:

Intent intent = new Intent(); 
intent.setClassName("com.android.bla", "com.android.bla.YourActivity"); 
startActivity(intent); 
+0

Кристиан, спасибо за ваш ответ. Я просто знаю о APK. То, что я не понимаю, - это то, что нужно сделать внутреннему АПК. Должен ли я поместить bla.apk в «res» или «res/raw»? где? – user505806

+0

Да, это хорошее место. Но, опять же, это только начало. Вы должны закодировать что-то, чтобы скопировать этот файл из необработанного каталога на SD-карту, как я уже указывал. – Cristian

+0

Я смущен. В APK есть несколько каталогов (например: «assests», «res», «raw» и т. Д.). Какой каталог хорош для размещения игры apk и как я могу изменить ваш пример кода, чтобы читать APK из каталога, который поставил игровой apk. – user505806

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