我在想是否有办法运行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(路径)?这可以吗?
答案 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);
}