apklug插件託管服務開發教程之下載插件-02

    結合上節<按條件查詢宿主中的插件>,本節下載並按照雲端的插件。 java

實現項目demo http://git.oschina.net/plug/ApkplugCloudServiceDemo android

實現代碼 :com.apkplugdemo.adapter.SearchBundleAdapter git

一,插件下載安裝服務 app

    插件下載安裝服務也是以OSGI服務形式提供的,獲取服務的模板代碼爲:        框架

//查詢插件下載服務  由於該服務在框架啓動時啓動,因此確定存在
ServiceReference reference=context.getServiceReference(AppDownload.class.getName());
if(null!=reference){
    	service=(AppDownload) context.getService(reference);
}
context.ungetService(reference);

二,AppDownload服務接口說明   url

public interface AppDownload {
	/**
	 * 插件託管服務接口
	 * @param appBean ab    包含插件基本信息
	 * @param mContext      android上下文
	 * @param callback      服務回調接口
	 * @throws IOException
	 */
	public void download(appBean ab,Context mContext,AppDownloadCallBack callback)throws IOException;
}

三,調用插件安裝服務接口下載插件 spa

    1)首先應該獲取appBean 目前有兩種方式能夠獲取到 .net

        1.經過插件搜索服務           即上一節提到的 插件

        2.經過插件版本狀態服務     code

   2)編寫回調接口AppDownloadCallBack

    

public interface AppDownloadCallBack {
	/**
	 * 安裝成功
	 */
	public final int suc_install=0;
	/**
	 * 安裝失敗
	 */
	public final int fail_install=-1;
	/**
	 * 安裝成功
	 */
	public final int suc_download=1;
	/**
	 * 下載失敗
	 */
	public final int fail_download=-2;
	/**
	 * 獲取url成功
	 */
	public final int suc_url=2;
	/**
	 * 獲取url失敗
	 */
	public final int fail_url=-2;
	/**
	 * 插件安裝成功後
	 * @param b
	 */
	public void onInstallSuccess(int stutas,Bundle b);

	public void onDownLoadSuccess(String info);
	/**
	 * 插件下載中
	 * @param bytesWritten  已下載數據
	 * @param totalSize     總數據大小
	 * @param Speed         下載速度
	 * @param bean
	 */
    public void onProgress(int bytesWritten, int totalSize,String Speed);
    
    /**
     * 失敗
     * @param bean
     * @param errorNo
     * @param strMsg
     */
    public void onFailure(int errorNo ,String strMsg);
}
相關文章
相關標籤/搜索