實現項目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); }