日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

接入指南

1. 系統升級接入指南

1.1 初始化

在application的onCreate()方法中,做如下必需項的設置:(必須要做。如果同時接入系統升級和應用升級的話,只需做1次即可。)

// 必需設置
FotaContext.getInstance().initContext(this);
FotaContext.getInstance().setFirmwareVersion(this, SystemProperties.get("ro.yunos.build.version"));
FotaContext.getInstance().setSafeguardAuth(getApplicationContext(), "aicc");

可選的設置有,通過setCustomizedFilterFields()方法,設置自定義查詢條件:(無自定義查詢條件的話,可不做。)

// 可選設置
JSONArray jsonArray = null;
try {
    jsonArray = new JSONArray();
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("name", "field1");
    jsonObject.put("value", "value1");
    jsonArray.put(jsonObject);

    JSONObject jsonObject2 = new JSONObject();
    jsonObject2.put("name", "field2");
    jsonObject2.put("value", "value2");
    jsonArray.put(jsonObject2);
} catch (Exception e) {
    Log.e(TAG, "Exception happened in FotaMainApplication onCreate, e.getMessage()=" + e.getMessage());
    e.printStackTrace();
}
Log.d(TAG, "FotaMainApplication onCreate jsonArray.toString=" + jsonArray.toString());
FotaContext.getInstance().setCustomizedFilterFields(this, jsonArray.toString());

1.2 綁定osupdate service

更詳細的內容,請參考“系統升級參考設計apk的代碼實現”。

// 使用OsUpdateServiceManager的靜態方法,綁定osupdate service。
// 返回值:
//       true:已經綁定,false:未綁定。需要調用者自己維護該返回值。
// 入參:
//       context,應用的上下文
//       connection,一個ServiceConnection
bindDownloadService(Context context, ServiceConnection connection)

// 示例代碼
boolean isBound = OsUpdateServiceManager.bindDownloadService(this, mConnection);

private ServiceConnection mConnection = new ServiceConnection() {
    public void onServiceConnected(ComponentName arg0, IBinder arg1) {
        // 取得osupdate service的實例
        mService = IOsUpdateService.Stub.asInterface(arg1);
        try {
            mService.getFotaDownloadEnvironmentRemote().setUiMode(FotaDownloadEnvironment.UI_MODE_INTERACTIVE);
            mService.getFotaDownloadEnvironmentRemote().setIsUserCheckingUi(true);
            // 注冊監聽listener
            mService.addListener(mListener);
            // 獲取osupdate service的狀態
            mMajorStatus = mService.getServiceStatus();
            mMinorStatus = mService.getServiceMinorStatus();
            // 根據不同的狀態,分別做處理
            switch (mMajorStatus) {
                case FotaDownloadServiceManager.STATUS_VERYFY_DONE:
                case FotaDownloadServiceManager.STATUS_INSTALL_FORCED_TIMER_TICK:
                case FotaDownloadServiceManager.STATUS_INSTALLING:
                case FotaDownloadServiceManager.STATUS_DOWNLOADING:
                case FotaDownloadServiceManager.STATUS_INSTALL_ERROR:
                    switch (mMinorStatus) {
                        case FotaDownloadServiceManager.STATUS_PRECHECK_POWER_LOW:
                        case FotaDownloadServiceManager.STATUS_PRECHECK_POWER_NEED_CHARGING:
                        case FotaDownloadServiceManager.STATUS_PRECHECK_DATA_STORAGE_TOO_LOW:
                        case FotaDownloadServiceManager.STATUS_INSTALL_ERROR_FILE_NOTFOUND:
                        default:
                    }
                case FotaDownloadServiceManager.STATUS_DOWNLOAD_ERROR:
                case FotaDownloadServiceManager.STATUS_VERYFY_FAILED:
                case FotaDownloadServiceManager.STATUS_CHECK_SUCCESS:
                default:
            }
        } catch (RemoteException e) {
            Log.e(TAG, "", e);
            finish();
        }
    }

    public void onServiceDisconnected(ComponentName arg0) {
        mService = null;
        mIsBound = false;
    }
};

1.3 注冊監聽osupdate service狀態變化的listener

更詳細的內容,請參考“系統升級參考設計apk的代碼實現”。

// 注冊監聽listener
mService.addListener(mListener);

// listener的定義
private FotaDownloadServiceIListener mListener = new FotaDownloadServiceIListener() {
    // 從service返回新版本信息
    public void onGotXml(FotaRootXmlInfo fota) throws RemoteException {
        mFotaXml = fota;
        synchronized (myCurrentVersionInfoLocker) {
            if (mFotaXml != null && !TextUtils.isEmpty(fota.getSystemVersion())
                    && !TextUtils.isEmpty(fota.getSize())) {
                mCurrentFotaVersionInfo = new FotaVersionInfo();
                mCurrentFotaVersionInfo.setSystemVersion(fota.getSystemVersion());
                mCurrentFotaVersionInfo.setSize(fota.getSize());
                mCurrentFotaVersionInfo.setTimeStamp(fota.getTimeStamp());
                mCurrentFotaVersionInfo.setUpdateInfoText(fota.getUpdateInfoText());
                mCurrentFotaVersionInfo.setUpdateInfoUrl(fota.getUpdateInfoUrl());
            } else {
                mCurrentFotaVersionInfo = mLocalFotaVersionInfo;
            }
        }
    }

    // osupdate service側狀態變化,通過該方法回調到這里
    public void onServiceStatusChange(final int majorStatus, final int minorStatus) {
        handler.post(new Runnable() {
            public void run() {
                onStatusChangedByService(majorStatus, minorStatus);
            }
        });
    }

    // service側更新下載進度,通過該方法回調到這里
    public void onDownloadProcess(final int progress, float completeFileSize) {
        Log.i(TAG, "FotaUpdateInfo.onDownloadProcess called, partCount: " + progress + ", value: " + completeFileSize);
        handler.post(new Runnable() {
            public void run() {
                updateProgressbar(progress);
            }
        });
    }
};

1.4 參考設計apk中的用戶交互

1) 處理強制夜間升級的彈窗

在應用的AndroidManifest.xml文件中,處理彈窗的類中,增加如下2個action的接收:

// 收到該廣播,用于顯示一個提示:
/*
* 更新提示
* 將在今晚自動升級或者將在明晚完成自動升級
* 只有一個按鈕:我知道了
* 用戶點擊按鈕之后,彈窗消失
*/
<action android:name="com.aliyun.aicc.fota.action.popupdialog.OSUPDATE_SERVICE_MIDNIGHT_INSTALL_TIP" />

// 如果云端配置為“夜間強制升級”,
// 端側fota sdk內部:當下載完該升級包,并且校驗通過之后,將設置Alarm,在夜間2:00~3:00之間的某一時刻,發出該廣播。
// 應用層收到該廣播之后,可顯示一個倒計時彈窗,倒計時超時之后,自動重啟設備進行升級。
<action android:name="com.aliyun.aicc.fota.action.popupdialog.OSUPDATE_SERVICE_MIDNIGHT_INSTALL" />

具體實現,請參考設計apk中的PopupDialogReceiver.java中的如下方法:

showNightForcedUpdateTipDialog()
showMidnightInstallDialog()

2. 應用升級接入指南

2.1 初始化

FotaContext.getInstance().initContext(this);
FotaContext.getInstance().setSafeguardAuth(this, "aicc");
FotaContext.getInstance().setEnvironment(FotaContext.CLOUD_ENV_ONLINE);

FotaAppConfig.getInstance().setAutoCheckPackagesList(this, 190*1000, new String[]{"com.yunos.member","com.alios.app1","com.alios.app2"});

2.2 靜默下載,自動安裝

FotaAppConfig.getInstance().setAutoUpgradeUnderWifi(this, true);
FotaAppConfig.getInstance().setAutoUpgradeUnderMobile(this,true);

服務端選擇自動安裝(只有自升級應用APK才可以選擇這一項)

2.3 自定義安裝

對于插件選擇的安裝類型是自定義安裝

3. push接入指南

3.1 在應用的manifest文件中,加入push廣播的接收

<receiver android:name="com.aliyun.aicc.fota.push.PushReceiver">
    <intent-filter>
        <action android:name="com.aliyun.aicc.fota" />
    </intent-filter>
</receiver>

3.2 下載并集成cmns apk

  • 說明:

    • cmns apk是配合ota中的消息推送,診斷等功能所使用的關聯apk。

    • 下載到的文件后綴名是.zip,手動改為.apk,并對該apk重新做簽名。

4. 升級診斷接入指南

4.1 在應用的manifest文件中,加入升級診斷service

<service
    android:name="com.aliyun.aicc.fota.service.DiagnoseService" android:exported="false">
    <intent-filter>
        <action android:name="com.aliyun.aicc.fota.action.Diagnose" />
    </intent-filter>
</service>

4.2 升級診斷的使用

1. 系統升級的診斷

使用方法見:http://bestwisewords.com/document_detail/73309.html

2. 應用升級的診斷

與上面的系統升級診斷類似。