1.小米云服務(wù)開放平臺
1.1 Profile存儲介紹
開發(fā)者在用戶授權(quán)下,可以通過Sdk的Key-Value接口將用戶個人數(shù)據(jù)存儲在小米云上。Sdk為Profile提供了單獨(dú)的訪問接口,方便開發(fā)者使用,包括上傳、部分更改、讀取等接口。app排名
UserProfile:用于存儲用戶的數(shù)據(jù)信息,包括用戶的性別、年齡等信息。應(yīng)用申請訪問身體數(shù)據(jù)信息的權(quán)限,經(jīng)過用戶授權(quán)后,就可以訪問用戶的UserProfile,UserProfile是用戶范疇下的數(shù)據(jù),每個UserId存儲一份。
1.2應(yīng)用接入UserProfile
Step1:用戶啟用賬號接入服務(wù)
Step2:開啟“存儲用戶的身體數(shù)據(jù)信息”接口,等待審核通過。
2.API說明
UserProfile類
用于存放UserProfile數(shù)據(jù)
字段摘要
long birthday 生日,默認(rèn)值為0,取值范圍>0,格式為19XX0X0X
UserProfile.Gender gender 性別,默認(rèn)值為null,枚舉類,取值為male或female
public UserProfile(
long birthday,
UserProfile.Gender gender)
有參構(gòu)造方法,用于改變多個屬性值,注意取值范圍
OpenProfileManager類
Profile數(shù)據(jù)的管理類
1.構(gòu)建OpenProfileManager
public OpenProfileManager(com.xiaomi.opensdk.pdc.OpenPdcSyncServerAdapter,
Environment environment,
java.lang.String clientId,
java.lang.String accessToken)
environment:設(shè)置Host、UserCountry、UserAgent信息,默認(rèn)傳遞OpenPdcSyncServerAdapter.DefaultEnvironment,如果修改可以繼承該類,實(shí)現(xiàn)自己的Enviroment.
clientId:在dev.xiaomi.com中創(chuàng)建應(yīng)用,填入應(yīng)用名和包名之后,小米服務(wù)器會分配AppID/AppKey/AppSecret,在隨后的頁面中可以看到這三個值。其中AppID即此處的clientId。
accessToken:使用賬號OAuth SDK獲得的AccessToken,參見http://dev.xiaomi.com/docs/passport/android/
2.Set方法
public void setProfile(com.xiaomi.opensdk.pdc.Profile profile)
throws com.xiaomi.opensdk.pdc.exception.UnretriableException,
com.xiaomi.opensdk.pdc.exception.RetriableException,
com.xiaomi.opensdk.pdc.exception.AuthenticationException
用于設(shè)置Profile的全部數(shù)據(jù)
public void setBirthday(long birthday)
throws com.xiaomi.opensdk.pdc.exception.UnretriableException,
com.xiaomi.opensdk.pdc.exception.RetriableException,
com.xiaomi.opensdk.pdc.exception.AuthenticationException
單獨(dú)設(shè)置生日數(shù)據(jù),不會影響其他數(shù)據(jù)
public void setGender(com.xiaomi.opensdk.pdc.UserProfile.Gender gender)
throws com.xiaomi.opensdk.pdc.exception.UnretriableException,
com.xiaomi.opensdk.pdc.exception.RetriableException,
com.xiaomi.opensdk.pdc.exception.AuthenticationException
單獨(dú)設(shè)置性別數(shù)據(jù),不會影響其他數(shù)據(jù)
3.Get方法
public com.xiaomi.opensdk.pdc.UserProfile getUserProfile()
throws com.xiaomi.opensdk.pdc.exception.UnretriableException,
com.xiaomi.opensdk.pdc.exception.RetriableException,
com.xiaomi.opensdk.pdc.exception.AuthenticationException
獲取已設(shè)置的身體數(shù)據(jù)
返回:case1:未設(shè)置任何數(shù)據(jù),拋出錯誤
case2:設(shè)置部分?jǐn)?shù)據(jù),則已設(shè)置部分?jǐn)?shù)據(jù)有值,其余數(shù)據(jù)返回為默認(rèn)值
case3:設(shè)置全部數(shù)據(jù),返回全部數(shù)據(jù)
4.結(jié)果&異常處理
SetGet方法調(diào)用過程未拋出異常即代表成功。
若拋出異常,則代表失敗,共包括兩三種異常——UnretriableException、RetriableException和AuthenticationException
UnretriableException:參數(shù)錯誤、請求邏輯錯誤等不可重試錯誤,開發(fā)者需記錄e.getDescription(),反饋給SDK開發(fā)人員。
RetriableException:服務(wù)器忙、Socket超時等可重試錯誤,開發(fā)者可以e.getRetryTime()在之后時間重試
AuthenticationException:AccessToken過期或不正確,鑒權(quán)失敗,開發(fā)者需要重新獲得用戶授權(quán)
3.權(quán)限說明
需要開通訪問網(wǎng)絡(luò)權(quán)限< uses-permission android:name="android.permission.INTERNET" />