如何从我的应用程序调用apk

时间:2010-11-12 13:52:47

标签: android android-intent invoke apk

我正在尝试将一个开源游戏添加到我的应用程序中。我是说,我开发了一个应用程序。当用户安装我的应用程序时,应用程序中会有按钮,当用户点击按钮时,将启动内部apk(开源游戏)。

但是,我不知道我应该把游戏apk文件放在哪里?我不知道如何调用游戏apk?

我发现以下代码从sdcard启动任何apk(我猜)。

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)。

1 个答案:

答案 0 :(得分:2)

  
    

应用程序中会有按钮,当用户点击按钮时,将启动内部apk(开源游戏)。

  

如果你的意思是,应用程序(内部apk)将启动,那么你不明白它是如何工作的。所以让我解释一下:APK不像Windows系统上的.EXE。我的意思是,你不能只是“运行”一个APK。

APK是一个包含应用程序的软件包,你唯一可以做的就是安装它。你上面发布的代码似乎调用了android应用程序安装程序,它会这样做:安装应用程序(不运行它)。如您所见,应用程序必须位于外部存储(SD卡)中,这是因为 app installer 无法直接访问您的/ res / raw。

所以,你需要做的是将APK从res / raw复制到SDCard(Google是你的朋友),然后使用上面的代码。再次,这将不会执行应用程序,它只会安装它。一旦安装完毕,您就可以从应用程序执行它来做一些事情:

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