实现项目demo http://git.oschina.net/plug/ApkplugCloudServiceDemo
实现代码 :com.apkplugdemo.adapter.UpdataActivity
一,插件版本状态查询服务
OSGI服务接口为:com.apkplug.service.update.checkupdate
OSGI服务查询模板代码如下
/**
* 插件版本更新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);
}
来源:oschina
链接:https://my.oschina.net/u/138488/blog/267544