从android应用程序内部运行apk

时间:2015-09-17 11:15:10

标签: android apk

我在想是否有办法运行apk文件并从已安装的应用程序中启动安装过程。

我知道以下代码打开了一个apk文件:

File apkFile = new File(path + file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(apkFile),"application/vnd.android.package-archive");
startActivity(intent);

但是如何在应用程序文件夹的resources文件夹中找到apk(路径)?这可以吗?

1 个答案:

答案 0 :(得分:0)

这取决于你的手机是否有根,但假设不是,你可以把你的apk文件放在原始文件夹中,打开它然后运行那个意图。看起来应该是这样的:

File tempFile = Utils.openResourceFile(context, R.raw.yourapk, "yourapkname.apk");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(tempFile),"application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

Utils.java

public static File openResourceFile(Context context, int resFile, String tempFileName) throws IOException{
        InputStream in = context.getResources().openRawResource(resFile);

        byte[] b = new byte[in.available()];
        in.read(b);

        FileOutputStream fout = context.openFileOutput(tempFileName, Context.MODE_WORLD_READABLE);

        fout.write(b);      
        fout.close();
        in.close();

        return context.getFileStreamPath(tempFileName);     
    }