• 关于android 怎样安装 assets文件下的apk


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


    public class MainActivity extends Activity {
    	Context mContext;
    	@Override
    	protected 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() {
    				@Override
    				public 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;
    	 }
    }
    


  • 相关阅读:
    navicat连接mysql报错1251解决方案
    ubuntu 安装nodejs/npm
    sync-settings(vscode)
    ubuntu远程桌面连接windows系统
    three.js中点生成矩阵方法
    threeJs中旋转位移等操作坐标系
    ubuntu查看进程端口号及运行的程序
    Ubuntu终端远程连接linux服务器
    THREE.OrbitControls参数控制
    canvas设置长宽
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5075809.html
Copyright © 2020-2023  润新知