Android应用可以安装另一个Android应用吗?

Ant*_*ton 15 android install

我想知道是否有可能安装已安装的Android应用程序去下载另一个应用程序并安装它?我认为这可能存在安全问题,但Android操作系统是否可以执行此操作?

lor*_*ova 21

严格来说不是,这是不可能的:设备上安装的每个Android软件包(.apk)文件都有自己独特的Linux用户ID,为它创建一个沙箱并防止它触及其他应用程序.
如果应用程序将"安装"另一个应用程序,则无法向目标提供新的用户ID.只有在根级别运行的系统applet才能做到这一点.

应用程序可以做的是使用ACTION_VIEWintent和application/vnd.android.package-archiveMIME类型间接调用包安装程序:系统将启动相应的"查看器",当然这是包安装程序.

关于该主题的良好链接:http://android.amberfog.com/?p = 98


Rob*_*ond 9

是.这就是Swype beta的工作原理.你基本上做的是下载新的apk,并使用一些Intent(不确定哪个)来启动Package Installer(此时它是一个新的活动,用户必须同意安装,就像从市场下载一样).

  • 这不是安装应用程序......这是调用系统安装程序......这是一个巨大的差异...... (11认同)

小智 8

试试这个:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(path+"/yourapp.apk")), application/vnd.android.package-archive");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)


小智 5


如果答案是否定的.然后我想知道Facebook如何安装"Messenger"应用程序以及"Facebook for Android"应用程序?

如果我没错,"Messenger"也是与主Facebook应用程序不同的应用程序.

当我们想要通过Facebook应用聊天时,Facebook For Android App不会要求安装Messenger App.它已经安装了facebook.

您也可以单独安装/卸载Messenger应用程序.

我可能错了.我没有完整的信息,但查看过程和应用一点点逻辑我认为我们可以从另一个应用程序安装Android应用程序.但我如何学习和寻找它.


那他们该怎么做呢?如果我错了,请纠正我.

  • 这是使用Android Manifest xml中的多个Launcher/Main活动完成的.如果在那里定义了两个,则会看到两个快捷方式作为启动器. (7认同)
  • Facebook的也从Play商店在一个点上,由于它通过编程修改本身"打破服务条款"禁止和它的其他"应用程序",而无需通过应用程序商店去.值得一提. (2认同)