安装raw文件下的apk文件

来源:互联网 发布:什么是算法的复杂性 编辑:程序博客网 时间:2024/05/21 09:57

    有时候我们需要将一些小软件嵌在我们的软件里面,那么我们就可以将这些apk放在我们的raw或者assets文件下进行暂时存储,那么下面我们用放在raw文件下进行展示安装这一过程。
    首先我们要把我们需要隐藏我apk文件放在raw文件下,raw是在res下的一个文件夹,如果没有的同学们可以自己新建一个。
然后第一步我们需要读取到这个apk文件,这里我们的apk文件我取名叫tmp,给出代码:

                File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/app_tmp.apk");                try {                    FileUtils.copyInputStreamToFile(getResources().openRawResource(R.raw.tmp), file);                } catch (Resources.NotFoundException e) {                } catch (IOException e) {                }                install(MainActivity.this, Uri.fromFile(file));

    这里我们获取到了资源,有个FileUtils大家可能没有,这个来自一个jar包,名叫commons_io-2.2.jar,大家可以从网上下载,很容易下载到的,然后install是个方法,就是安装文件的方法,下面给出代码:

    public static void install(Context context, Uri uri) {        Intent i = new Intent(Intent.ACTION_VIEW);        i.setDataAndType(uri, "application/vnd.android.package-archive");        context.startActivity(i);    }

    到这里就结束了吗?不,我们如果尝试安装的话会报错:解析文件包时出现错误,实际上我们还需要添加权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>