关于android 如何安装 assets文件下的apk

来源:互联网 发布:ae mac 中文破解版 编辑:程序博客网 时间:2024/06/05 09:16

在自己的app中安装assets目录下的apk文件


public class MainActivity extends Activity {Context mContext;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = this;//Toast.makeText(this, ""+Environment.getExternalStorageDirectory().getAbsolutePath(), 0).show();if(copyApkFromAssets(this, "test.apk", Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.apk")){Builder m = new AlertDialog.Builder(mContext).setIcon(R.drawable.ic_launcher).setMessage("是否安装?").setIcon(R.drawable.ic_launcher).setPositiveButton("yes", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Intent intent = new Intent(Intent.ACTION_VIEW);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setDataAndType(Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.apk"),           "application/vnd.android.package-archive");mContext.startActivity(intent);}});m.show();}} public boolean copyApkFromAssets(Context context, String fileName, String path) { boolean copyIsFinish = false; try { InputStream is = context.getAssets().open(fileName); File file = new File(path); file.createNewFile(); FileOutputStream fos = new FileOutputStream(file); byte[] temp = new byte[1024]; int i = 0; while ((i = is.read(temp)) > 0) { fos.write(temp, 0, i); } fos.close(); is.close(); copyIsFinish = true; } catch (IOException e) { e.printStackTrace(); } return copyIsFinish; }}


0 0
原创粉丝点击