我想知道是否可以安装已经安装的Android应用程序去下载另一个应用程序并安装它?我认为这可能存在安全问题,但Android操作系统是否可以这样做?
答案 0 :(得分:20)
严格来说没有,这是不可能的:设备上安装的每个Android软件包(.apk)文件都有自己唯一的Linux用户ID,为它创建一个沙箱并防止它接触其他应用。
如果应用程序将“安装”另一个应用程序,则无法向目标提供新的用户ID。只有在根级别运行的系统applet才能做到这一点。
应用程序可以做的是使用ACTION_VIEW
intent和application/vnd.android.package-archive
MIME类型间接调用包安装程序:系统将启动相应的“viewer”,当然这是包安装程序
关于该主题的良好链接:http://android.amberfog.com/?p=98
答案 1 :(得分:9)
是。这就是Swype beta的工作原理。你基本上做的是下载新的apk,并使用一些Intent(不确定哪个)启动Package Installer(此时它是一个新的活动,用户必须同意安装,就像从市场下载一样)。
答案 2 :(得分:8)
试试这个:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(path+"/yourapp.apk")), application/vnd.android.package-archive");
startActivity(intent);
答案 3 :(得分:5)
如果答案是否定的。然后我想知道facebook如何安装“Messenger”应用程序以及“Facebook for Android”应用程序?
如果我没错,“Messenger”也是与主Facebook应用程序不同的应用程序。
当我们想通过Facebook应用聊天时,Facebook For Android App不会要求安装Messenger App。它已经安装了facebook。
您也可以单独安装/卸载Messenger应用程序。
我可能错了。我没有完整的信息,但查看过程和应用一点点逻辑我认为我们可以从另一个应用程序安装Android应用程序。但我是如何学习和寻找它的。
他们必须怎么做呢?如果我错了,请纠正我。
答案 4 :(得分:0)
如果您的应用是root权限,您可以将要安装的apk移动到/ data / app,它将在设备重新启动时安装