apk安装法之二----一段Android实现应用下载并自动安装apk包的代码
16lz
2021-12-04
Android实现应用下载并自动安装apk包
安装:
[java] view plain copy- Stringstr="/CanavaCancel.apk";
- StringfileName=Environment.getExternalStorageDirectory()+str;
- Intentintent=newIntent(Intent.ACTION_VIEW);
- intent.setDataAndType(Uri.fromFile(newFile(fileName)),"application/vnd.android.package-archive");
- startActivity(intent);
卸载:
[java] view plain copy- UripackageURI=Uri.parse("package:com.demo.CanavaCancel");
- IntentuninstallIntent=newIntent(Intent.ACTION_DELETE,packageURI);
- startActivity(uninstallIntent);
下载apk程序代码
[java] view plain copy- protectedFiledownLoadFile(StringhttpUrl){
- //TODOAuto-generatedmethodstub
- finalStringfileName="updata.apk";
- FiletmpFile=newFile("/sdcard/update");
- if(!tmpFile.exists()){
- tmpFile.mkdir();
- }
- finalFilefile=newFile("/sdcard/update/"+fileName);
- try{
- URLurl=newURL(httpUrl);
- try{
- HttpURLConnectionconn=(HttpURLConnection)url
- .openConnection();
- InputStreamis=conn.getInputStream();
- FileOutputStreamfos=newFileOutputStream(file);
- byte[]buf=newbyte[256];
- conn.connect();
- doublecount=0;
- if(conn.getResponseCode()>=400){
- Toast.makeText(Main.this,"连接超时",Toast.LENGTH_SHORT)
- .show();
- }else{
- while(count<=100){
- if(is!=null){
- intnumRead=is.read(buf);
- if(numRead<=0){
- break;
- }else{
- fos.write(buf,0,numRead);
- }
- }else{
- break;
- }
- }
- }
- conn.disconnect();
- fos.close();
- is.close();
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }catch(MalformedURLExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- returnfile;
- }
- //打开APK程序代码
- privatevoidopenFile(Filefile){
- //TODOAuto-generatedmethodstub
- Log.e("OpenFile",file.getName());
- Intentintent=newIntent();
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setAction(android.content.Intent.ACTION_VIEW);
- intent.setDataAndType(Uri.fromFile(file),
- "application/vnd.android.package-archive");
- startActivity(intent);
- }
更多相关文章
- Pycharm安装PyQt5的详细教程
- android 环境变量搭建
- Android(安卓)4.0 开发环境离线安装(Linux)
- Android——NDK下载提示缺少toolchains问题解决
- Android(安卓)Fragment使用和切换 笔记
- 安卓模拟器Android(安卓)SDK安装完整图文教程
- android实现异步下载过程
- Android之断点续传下载
- android之网络资源多线程下载