实现项目demo http://git.oschina.net/plug/ApkplugCloudServiceDemo java
实现代码 :com.apkplugdemo.adapter.UpdataActivity git
一,插件版本状态查询服务 服务器
OSGI服务接口为:com.apkplug.service.update.checkupdate 网络
OSGI服务查询模板代码以下 app
/** * 插件版本更新OSGI服务 一次只容许最大查询20给插件的版本信息 * @param context * @param updateAppBean bean 须要查询版本的插件填充bean * @param callback 查询回调函数 */ public void checkupdate(BundleContext context,updateAppBean bean,updateCallBack callback){ ServiceReference reference=context.getServiceReference(checkupdate.class.getName()); if(null!=reference){ checkupdate service=(checkupdate) context.getService(reference); if(service!=null){ service.checkupdate(bean, callback); } context.ungetService(reference); } }
public class updateAppBean { //须要查询的插件版本信息 最多20个 private List<updateAppInfo> apps=null; public List<updateAppInfo> getApps() { return apps; } public void setApps(List<updateAppInfo> apps) { this.apps = apps; } }
/** * 只有 bundlevarsion 与 versionCode 版本同时小于现有服务器上插件版本才能算有更新版本 * @author 梁前武 * www.apkplug.com */ public class updateAppInfo { //插件package id public String appid=null; //插件 plugin.xml中版本 public String bundlevarsion=null; //插件AndroidManifest.xml中版本 public int versionCode=0; }
public interface updateCallBack { /** * 获取成功 */ public final int suc=0; /** * 数据解析失败 */ public final int msg_exp_fail=-1; /** * 网络链接失败 */ public final int net_fail=-2; /** * 服务返回错误消息 */ public final int msg_fail=-3; /** * 只有更新版本的插件才会传回 * @param stutas * @param newapps 可更新app列表 * @param info */ public void onSuccess(int stutas,List<appBean> newapps,String info); public void onFailure(int errorNo ,String strMsg); }