apklug插件托管服务开发教程之查询已安装插件版本状态-03

為{幸葍}努か 提交于 2019-12-04 06:22:07
 

实现项目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);
}


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!