Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过另一个应用程序安装android应用程序_Java_Android_Eclipse_Android Intent - Fatal编程技术网

Java 通过另一个应用程序安装android应用程序

Java 通过另一个应用程序安装android应用程序,java,android,eclipse,android-intent,Java,Android,Eclipse,Android Intent,我需要创建一个应用程序来安装我创建的一些apk(名称为myapp.apk)文件。(我单独检查了myapp.apk,它工作正常) 我在res文件夹中创建了一个文件夹raw,并将myapp.apk文件放在那里。 我在应用程序中添加了以下代码: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File("R.raw.myapp")), "application/vnd.andr

我需要创建一个应用程序来安装我创建的一些apk(名称为myapp.apk)文件。(我单独检查了myapp.apk,它工作正常)

我在
res
文件夹中创建了一个文件夹
raw
,并将myapp.apk文件放在那里。 我在应用程序中添加了以下代码:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("R.raw.myapp")), "application/vnd.android.package-archive");
但是我在模拟器(EclipseAndroid模拟器)上遇到了一个解析错误


感谢您的帮助

首先,
R.raw.myapp
不是一个文件。它是原始资源的整数标识符

其次,您不能从资源(或资产,或
ContentProvider
)安装APK。它必须是文件系统上的文件,可由其他进程读取


因此,使用
getResources().openRawResource()
在APK上获取
InputStream
,将其写入外部存储,然后使用
Intent
中外部存储上的文件,谢谢您的回答。可以从内部存储器读取吗?基本上,我想做的是(对于如何正确处理这个问题,我感到非常困惑),其他应用程序将能够(在给定我的应用程序的sdk和apk时)将其添加到他们的应用程序中,通过这样做,我的应用程序也可以被安装。(我的应用程序是一个简单的应用程序,它只创建我的网站的网络视图)。谢谢again@dev:“可以从内部存储器中读取它吗?”--只有通过跳转使其具有全世界可读性。坦率地说,你的描述听起来很像恶意软件(应用程序B是作为运行应用程序A的一部分安装的)。如果你的应用程序“只是创建了一个[你的]网站的网络视图”,只需让你的“sdk”将你的网站的URL启动到用户选择的浏览器中,然后将安装APK的方法一起转储即可。