原地址:http://www.pin5i.com/showtopic-android-apps-upgrade.html

用户可以从market上直接下载下来直接安装 就可以了,会自动识别覆盖的,除非你把版本调低了

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2. package="com.xx.xx" 包名
  3. android:versionCode="X" 版本号
  4. android:versionName="xxx"> 版本名
复制代码

就是修 改这个versionCode和versionName

代码安装apk

  1. Intent i = new Intent(Intent.ACTION_VIEW);
  2. String filePath = "/sdcard/XXX.apk";
  3. i.setDataAndType(Uri.parse("file://" + filePath),"application/vnd.android.package-archive");
  4. context.startActivity(i);
复制代码

程 序卸载

  1. Intent intent = new Intent(Intent.ACTION_DELETE, uri);
  2. intent.startActivity();
复制代码

监 听是否卸载成功

  1. DeleteReceiver mDeleteReceiver = new DeleteReceiver();//自定义的广播接收类,接收到结果后的操作
  2. IntentFilter filter = new IntentFilter(
  3. Intent.ACTION_PACKAGE_DATA_CLEARED);
  4. filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
  5. filter.addDataScheme("package");
  6. registerReceiver(mDeleteReceiver, filter); //注册广播和过滤

  7. Intent undeleteIntent = new Intent(Intent.ACTION_DELETE, packageURI);
  8. startActivity(undeleteIntent);
复制代码

文 件下载

DownloadProvider的权限级别改成 normal了就可以使用了 网上也有说明
首先要在Android Manifest.xml中申请访问 DownloadManager的权限

  1. <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
复制代码

添加一个 下载任务:

  1. ContentValues values = new ContentValues();
  2. values.put(Downloads.URI, url);//指定下载地址
  3. values.put(Downloads.COOKIE_DATA, cookie);//如果下载Server需要cookie,设置cookie
  4. values.put(Downloads.VISIBILITY,Downloads.VISIBILITY_HIDDEN);//设置下载提示 是否在屏幕顶部显示
  5. values.put(Downloads.NOTIFICATION_PACKAGE, getPackageName());//设置下载完成之后回调的包名
  6. values.put(Downloads.NOTIFICATION_CLASS, DownloadCompleteReceiver.class.getName());//设置下载完成之后负责接收的Receiver,这个类要继承 BroadcastReceiver
  7. values.put(Downloads.DESTINATION,save_path);//设置下载到的路径,这个需要在Receiver里 自行处理
  8. values.put(Downloads.TITLE,title);//设置下载任务的名称
  9. this.getContentResolver().insert(Downloads.CONTENT_URI, values);//将其插入到DownloadManager的数据库中,数据库会触发修改事件,启动下载任务


  10. ContentValues values = new ContentValues();
  11. values.put("uri", uri.toString());
  12. values.put("useragent", "Mozilla/5.0 (Linux; U; Android 1.5; en-us; sdk Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1");
  13. values.put("notificationpackage", getPackageName());
  14. values.put("notificationclass", "HelloWorld");
  15. values.put("visibility", 1);
  16. values.put("mimetype", mimetype);
  17. values.put("hint", filename);
  18. values.put("description", uri.getHost());
  19. values.put("total_bytes", 1349528);

  20. mResolver = getContentResolver();
  21. mResolver.insert(Uri.parse("content://downloads/download"), values);
复制代码

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. android 4.1 UI 工具测试的新利器, uiautomator
  3. android 软件开发错误-解决记录
  4. android 基于基站,apn,gps,wifi,network 根据不同手机sim卡获取经
  5. android-opencv 版本下JNI Android.mk文件的书写
  6. 一览新的 Android(安卓)Gradle 构建工具:新的 DSL 结构 和 Gradle
  7. Android(安卓)OTA升级新旧版本任意升级
  8. Android下自启动的实现
  9. android 编程注意事项

随机推荐

  1. Android(安卓)studio Xposed框架Hook小试
  2. 打包上线流程
  3. Android(安卓)镜像文件生成流程
  4. Inflater与findViewById()区别
  5. 【安卓笔记】Tips
  6. ContactsProvider2
  7. 通知推送、导航栏、状态栏
  8. 用React Native做一个填字游戏(3)——背景
  9. android 4.0以上版本横竖屏切换后不重建
  10. Android(安卓)Audio System 之三: AudioPo