APK安装

时间:2012-04-28 19:35:19

标签: android

我正在试图弄清楚如何以编程方式安装APK,而不会出现在所有/管理应用程序中 - 应用程序/图标列表等等

我已经与Corona组建了一款游戏,但不幸的是Corona还没有与c2dm进行任何整合,开发人员也从不回答有关它的论坛问题.. soooo ..我在eclipse中整合了一个应用程序,在启动时记录了设备与c2dm然后打开我的游戏。工作正常,我从我的网站收到通知...问题是,虽然我的游戏的管理应用程序中列出了2个应用程序。我只需要第一个注册c2dm的应用程序。如果用户直接打开游戏,他们的设备将不会登录到c2dm。

史蒂夫

2 个答案:

答案 0 :(得分:0)

如果您的意思是以编程方式安装apk,请使用意图

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() +    "/where/apk/is/stored/app.apk")), "application/vnd.android.package-archive");
startActivity(intent);  

如果您不希望它显示在应用列表中(但它会显示在“设置/应用”上,而不会显示在启动器上),您只需从清单中删除

action android:name="android.intent.action.MAIN"
category android:name="android.intent.category.LAUNCHER"

来源:Android: install .apk programmatically

答案 1 :(得分:0)

  

问题是,我的游戏的管理应用程序中现在列出了2个应用程序。

正确。这是一件好事。而且,幸运的是,对于用户来说,这是一项要求 - 例如,恶意软件作者对能够安装而不是卸载非常感兴趣。

  

我只需要第一个注册了c2dm的应用程序。

用户需要列出,因此用户可以卸载任一应用,强制停止应用,跟踪两个应用中的存储空间等。

  

如果用户直接打开游戏,他们的设备将不会登录到c2dm。

然后你的应用需要妥善处理。无论如何,你的游戏有望不依赖于C2DM,因为C2DM不可靠(消息延迟,消息丢失等)并且并非在所有设备上都可用(例如,Kindle Fire)。